Меня смущает то, как Firefox показывает загруженные ресурсы как cached
но затем я вижу, что браузер выдает новый DNS-запрос для имени домена и снова обращается к HTTP-серверу.
Ниже приведен простой пример такого поведения. я навестил https://example.com затем перезагрузите веб-страницу. Как и ожидалось, загруженные ресурсы показаны как cached
. Но в то же время я запускаю tcpdump в фоновом режиме и замечаю, что браузер выдает DNS-запрос для example.com
снова и также подключается к HTTP-серверу после получения ответа DNS.
Это ожидаемое поведение или я что-то упускаю? Спасибо, что прочитали мой вопрос <3
Firefox кэшировал ваш объект и повторная проверка объект с исходным сервером. Вы можете сказать это, потому что он отправил If-Modified-Since:
и Cache-Control:
заголовки запросов.
Firefox обычно повторно проверяет кэшированные объекты в двух случаях:
Cache-Control:
и Expires:
заголовки ответов, которые были отправлены с объектом, когда он был ранее кэширован.Вы можете видеть, что веб-сервер отправил 304 Not Modified
ответ, и, таким образом, Firefox обслужил существующий кэшированный объект.
Кэширование HTTP может быть довольно сложным. Чтобы узнать все об этом, проведите вечер за изучением RFC 7234.