Запретить Chrome кэшировать DNS-записи сайта

Chrome кэширует DNS-записи и, как правило, игнорирует изменения в файле hosts после успешного подключения к моему сайту (за исключением перезапуска). С включенной предварительной выборкой DNS он еще более выражен.

есть ли заголовки страниц, которые будут указывать Chrome не кэшировать DNS сайта? Как Cache-Control или статус ответа, как 307 Temporary Redirect?

4 ответов


Это, вероятно, реальная ошибка в Google Chrome. Я создал http://crbug.com/65570 чтобы отслеживать его, но, пожалуйста, добавьте любую дополнительную информацию вы можете думать об ошибке, так что мы уверены, что мы понимаем вашу проблему правильно.

похоже, что единственная работа, кроме закрытия Chrome, отключает сетевой кабель, а затем снова подключает его. Когда Chrome видит такое событие, он сбрасывает свой сокет и кэш dns. Правильное решение для ошибки, вероятно, сделайте то же самое, когда мы увидим, что /etc/hosts изменился.

Если вы хотите знать, когда Исправлена ошибка, перейдите вhttp://crbug.com/65570 и нажмите звездочку рядом с номером ошибки. И, как я уже сказал, Пожалуйста, добавьте любую дополнительную информацию, которую вы можете к ошибке.


Я не уверен, что это именно то, что вы ищете, но это раздражает меня слишком переключение сред разработки, и я наткнулся на эту внутреннюю страницу chrome, которая позволяет очистить кэш нажатием кнопки: chrome: / / net-internals / #dns

затем нажмите Очистить кэш хоста. Это не автоматически, но это что-то.

также имейте в виду, что операционная система может выполнять свой собственный уровень кэширования. Linux не кэширует записи dns I думаю (по крайней мере для меня очистка кэша chrome достаточно хороша), но для windows или mac вам также может потребоваться очистить кэш DNS на уровне ОС. Запустить ipconfig /flushdns из командной строки для Windows или sudo dscacheutil -flushcache из командной строки для Mac.


в моем случае я часто переключаюсь с моего веб-сервера dev и производственного сервера, используя пользовательские файлы хостов, чтобы очистить всю кэшированную информацию dns от chrome, я использую эту процедуру, и она работает мгновенно на той же вкладке, где мне нужно загрузить обновленный адрес веб-сайта:

  1. скопируйте и вставьте этот url в chrome: chrome:/ / net-internals / #dns
  2. нажмите на кнопку "Очистить кэш Хоста"и нажмите на маленькую черную стрелку в правом верхнем углу в углу окна нажмите "Очистить кэш" и "Flusk Sockets", и новый адрес будет загружен постоянно.

Chrome Dns panel


Мне нечего добавить, кроме того, что это действительно убивает меня для веб-разработки, так как я изменяю /etc/hosts для достижения моей среды разработки.