Как убрать редирект на https из кэша браузера?



Поскольку я работаю с настройкой сайтов и серверов, то часто сталкиваюсь с тем, что нужно переводить сайты на протокол HTTPS.   Такая настройка часто включает в себя конфигурирование редиректов c http на https или обратно.   Так вот, при проверке сайта, Google Chrome запоминает эти редиректы в свой кэш что называется «намертво». После чего, если даже вы будете менять настройки в файле .htaccess или конфигурации nginx — сайт всё равно будет редиректиться в вашем браузере на https.

Стандартная рекомендация в таких случаях  — очистка кэша браузера.  Но при этом будут удалены данные и других сайтов.

Используйте режим инкогнито чтобы исключить влияние кэша браузера

Еще один способ — использовать режим инкогнито.  Можно открыть его комбинацией клавиш Ctrl+Shift+N.

Используйте режим инкогнито для работы в браузере без кэша








Дело в том, что в этом режиме не сохраняются никакие данные о посещаемых сайтах. История, кэш, куки — всё это будет удалено при закрытии окна.  Соответственно все эти данные не берутся из кэша Chrome.  И часто помогает проверить какие-то изменения на сайтах имено этот режим.

Используйте отладчик с опцией «Не использовать кэш»

В хроме есть хороший инструмент — отладчик. Или как это называется  debugger. Он вызывается с помощью клавиши F12 или по Ctrl+Shift+I. Ну, либо мышкой в меню.  Через него можно просматривать заголовки страниц, в которых можно выяснить версию nginx, наличие кэша или узнать IP-адрес сайта.    Кроме того, я этим инструментом активно пользуюсь в работе для проверки скорости загрузки сайта при оптимизации серверов.

Так вот, в его настройках есть опция, которая позволяет запретить хрому использование кэша при включенном дебаггере.

Настройки отладчика — не использовать кэш

После активации этой опции Google Chrome не будет брать данные из кэша, соответственно ваши редиректы должны отрабатывать корректно, если они настроены на сервере.

Способ третий — сбросить в браузере редирект https для конкретного домена

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

Поэтому есть способ самый «хардкорный» но и самый удобный.  Введите в адресной строке  такой адрес:

chrome://net-internals/#hsts

У вас должно открыться нечто подобное:

Удаляем редиректы для одного домена в Chrome

После этого хром начнет отрабатывать редиректы корректно, именно так, как они настроены на сервере или хостинге.   Но вообще, лучше всего проверять редиректы не браузером.

Как проверить редиректы или статусы страниц сайта без вероятного влияния кэша браузера?

Все очень просто. Для того, чтобы исключить влияние кэша браузера — нужно не пользоваться браузером :)








Как же тогда быть? Ну вообще есть куча сервисов для проверки http-заголовков и статусов страниц.  Например, есть специальные сервисы для проверки страниц и ссылок ссайта на 404 ошибку. Такой сервис сканирует ваш сайт и выдает отчет, в котором содержатся все ссылки на битые страницы.

Но для проверки редиректов или одной-двух страниц можно поступить более простым способом.  Использовать консольные утилиты wget или curl.   curl будучи запущен с опцией -I вернет заголовки ответа страницы.

А wget показывает полностью  всю логику редиректов — что происходит при перенаправлении страниц, какие редиректы есть в цепочке.

Да и не только редиректы.  Любые статусы которые отдает страница. IP тоже будет видно в выводе этой утилиты. Вообще, wget очень мощное средство. Где его брать? Оно обычно есть практически на любом сервере или VPS  — достаточно подключиться в консоль по SSH.

Очистка кэша DNS в Google Chrome

Смежная тема — это DNS.  Дело в том, что хром кэширует все подряд. В том числе и ответы DNS  — сопоставления доменов IP-адресам сайтов.  Часто при переносе сайтов или перенаправлении доменов требуется проверять работу на новых серверах или хостингах.  Это можно сделать и без смены DNS глобально, чтобы убедиться в работоспособности сайта на новом хостинге или сервере.  Вы просто подменяете DNS локально, в файле hosts на своем компьютере. После этого сайт будет открываться с нового сервера исключительно на вашем компьютере, а весь остальной мир по прежнему будет ходить на сайт на старый сервер.

Так вот, такая проверка бывает осложняется тем, что хром запоминает IP старого хостинга или сервера в кэше.  И не желает перечитывать его из файла hosts. С этим тоже достаточно просто бороться, если знать о его таких «особенностях».

Пользоваться тем же инструментом, что был показан выше для очистки кэша редиректов.

Просто вводим в адресную строку chrome://net-internals/#dns  и жмем там очистку кэша.

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

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

Комментариев

  1. Николай :

    Ответить

  2. Alex :

    Ответить

Сохраните для друзей или чтобы прочесть в другой раз:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *