Nginx Cache-Control
Я обслуживаю свой статический контент с помощью ngnix.
location / static { псевдоним /opt/static/blog/; access_log off; Этаги на; etag_hash on; etag_hash_method md5; истекает 1d; add_header Pragma "public"; add_header Cache-Control "public, must-revalidate, proxy-revalidate"; }
Результирующий заголовок выглядит так:
Cache-Control: общедоступный, должен пройти повторную проверку, прокси-выполнить повторную проверку Cache-Control: макс возраста =86400 Подключение: закрыть Content-Encoding: GZIP Content-Type: применение / х-Javascript; кодировка = UTF-8 Дата: вт, 11 сен 2012 08:39:05 GMT Etag:e2266fb151337fc1996218fafcf3bcee Истекает: Ср, 12 сентября 2012 08:39:05 GMT Последнее изменение: вторник, 11 сентября 2012 г. 06:22:41 GMT Pragma: общественность Сервер: Nginx/1.2.2 Transfer-Encoding: фрагментированный Vary:Accept-Encoding
Почему nginx отправляет 2 записи Cache-Control, это может быть проблемой для клиентов?
1 ответ
http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html
Множество полей заголовка сообщения с одним и тем же именем поля МОЖЕТ присутствовать в сообщении тогда и только тогда, когда все значение поля для этого поля заголовка определено как список, разделенный запятыми [т.е. #(значения)]. ДОЛЖНО быть возможно объединить несколько полей заголовка в одну пару "field-name: field-value", не изменяя семантику сообщения, добавляя каждое последующее значение поля к первому, каждое из которых разделяется запятой. Порядок, в котором принимаются поля заголовка с одним и тем же именем поля, поэтому важен для интерпретации объединенного значения поля, и, таким образом, прокси-сервер НЕ ДОЛЖЕН изменять порядок этих значений поля при пересылке сообщения.