Как Twitter выполняет перенаправление, когда Javascript отключен?

376
EpicOrange

Я понимаю, что отключение JavaScript на веб-сайте препятствует запуску любых сценариев - я получу содержимое сайта, необработанное и не оцененное.

Но когда я отключаю JavaScript (в Chrome) twitter.com, я перенаправляюсь наmobile.twitter.com . Я не могу приостановить браузер при загрузке с помощью debuggerили тому подобное, так как JavaScript отключен. И перенаправление происходит слишком быстро в любом случае. (Это вдвойне раздражает, так как я не могу вернуться twitter.comк отключению JavaScript!)

Итак, как твиттер

  1. обнаружив, что у меня отключен JavaScript и
  2. выполнять перенаправление без JavaScript?

И как я могу предотвратить это?

редактировать: Twitter теперь имеет экран подтверждения перед перенаправлением, но в прошлом он автоматически делал перенаправление без какого-либо запроса. Я хотел бы знать, как они это сделали.

1

1 ответ на вопрос

1
Mokubai

Не все перенаправления основаны на JavaScript или требуют активного участия вашего браузера.

Один из способов сделать это - через страницу « meta-refresh », которая настроена на немедленное обновление на другой странице, в вашем случае на мобильном сайте.

Так как же Twitter узнает, как дать вам эту страницу? Потому что ваш веб-браузер сказал это. При каждом запросе документа ваш браузер будет отправлять строку userragent, сообщающую веб-сайту, какой браузер, ОС и сведения о версии.

Строка useragent предназначена для того, чтобы веб-сервер мог обнаруживать и отправлять версию веб-страницы, которая конкретно поддерживается запрашивающим устройством. В прошлом это делалось для того, чтобы сайты были адаптированы к несколько спорадической поддержке функциональности в разных браузерах.

Однако это означает, что они могут легко обнаруживать и перенаправлять мобильных пользователей на более дружественный интерфейс.

Чтобы обойти это, большинство браузеров могут быть настроены на «запрос сайта рабочего стола», который изменяет их строку useragent, чтобы притвориться, что ваше устройство является браузером рабочего стола.

Похожие вопросы