LiveHttpHeaders: какая информация о контроле кэша верна - PullRequest
1 голос
/ 17 сентября 2011

Использование LiveHttpHeaders для Firefox 6 Я пытался проверить, кэшируются ли мои css, JS-файлы с помощью модуля заголовков из Apache с использованием htaccess. Но я путаюсь, из данных 'Cache-Control' есть 2 значения:

GET /proz/css/global.css HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: text/css,*/*;q=0.1
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://localhost/proz/
Cookie: PHPSESSID=el34de37pe3bnp4rdtbst1kd43
If-Modified-Since: Fri, 16 Sep 2011 21:15:32 GMT
If-None-Match: "400000000b06a-2999-4ad157e5b4583"
Cache-Control: max-age=0

HTTP/1.1 304 Not Modified
Date: Sat, 17 Sep 2011 03:04:50 GMT
Server: Apache/2.2.17 (Win32) PHP/5.2.8
Connection: Keep-Alive
Keep-Alive: timeout=5, max=99
Etag: "400000000b06a-2999-4ad157e5b4583"
Cache-Control: max-age=604800, public
Vary: Accept-Encoding

Какие из них являются истинными, первые данные Cache-Control (max-age = 0) или последние.

Я также хотел бы знать, как мне убедиться, что мои файлы JS, CSS, HTML сжимаются после того, как я использую модуль deflate в htaccess. И да, оба заголовка и дефляционные модули включены.

1 Ответ

5 голосов
/ 17 сентября 2011

В этом листинге есть две части:

  • Часть перед пустой строкой - это запрос, отправленный вашим браузером
  • Часть после пустой строки - это ответ,отправлено сервером

Cache-Control: max-age=0, отправленное клиентом (вашим браузером), сообщает серверу (или любому прокси-серверу посередине) отправить самую свежую версию файла.Браузер обычно отправляет это, когда вы нажимаете кнопку refresh .

Cache-Control: max-age=604800, public, отправленный сервером, сообщает клиенту (вашему браузеру или прокси), что файл действителен в течение 604800 секунд.и может быть кэшировано для этого времени.(Браузер даже не попытается запросить у сервера, существует ли более новая версия, если вы не нажмете refresh , как вы это делали в этом случае.)

Сервер ответил 304 Not Modified,это означает, что ваш браузер уже имеет самую последнюю версию, и ему не нужно загружать ее снова (он не загружал ее снова).

Заголовок Vary: Accept-Encoding указывает, что сервер принял некоторые решения на основезаголовок Accent-Encoding клиента.Это может указывать на то, что если бы сервер не ответил 304 Not Modified, он бы сжал файл.

Чтобы проверить этот последний момент, очистите кэш, снова запросите файл и посмотрите содержимоезаголовка Content-Encoding (должен быть gzip или deflate, если данные сжаты).

...