Предположительно ExpiresByType устанавливает время истечения для изображений - это связано с кэшем браузера посетителей?
Да. mod_expires позволяет легко настроить правила истечения срока действия на основе типа.
Но время истечения указывает только время обновления определенного ответа.Это не обязательно означает, что ответ кэшируется .Но в общем случае любой успешный ответ может быть кэширован, если только нет ограничений :
Если это не ограничено директивой управления кэшем (раздел 14.9 ), aсистема кэширования МОЖЕТ всегда сохранять успешный ответ (см. раздел 13.8 ) в качестве записи кэша, МОЖЕТ вернуть ее без проверки, если она свежая, и МОЖЕТ вернуть ее после успешной проверки.
Таким образом, если вы не укажете ответ, который не должен храниться вообще (т. Е. С использованием no-store
), ответ может храниться как в общедоступных, так и в общих (локальных) кэшах.
А на что переводит A2592000?
Время обновления ответа может быть выражено с использованием абсолютного значения времени (например, «2010-10-09») или относительного значения времени(например, «завтра»).Формат даты A2592000
использует последнее значение времени, так как A
обозначает время доступа , а 2592000
- количество добавляемых секунд.Таким образом, A2592000
означает « 2592000 секунд с момента доступа на ».
А что означает «brokenvary = 1»?Я понял, что он ищет UserAgent, но что тогда?
В Apache есть переменные среды специального назначения , где force-no-vary
- одна из них:
Это приводит к удалению любых полей Vary
из заголовка ответа перед его отправкой обратно клиенту.Некоторые клиенты неправильно интерпретируют это поле;установка этой переменной может обойти эту проблему.Установка этой переменной также подразумевает force-response-1.0 .
Теперь поле заголовка Vary используется для указания список имен полей заголовка, который сервер использовал для выбора ответа среди нескольких представлений :
Сервер ДОЛЖЕН использовать поле заголовка Vary для информирования кэша о том, какие поля заголовка запроса использовались длявыберите из нескольких представлений кэшируемого ответа, подлежащего согласованию на основе сервера.
Так что, если вы используете согласование содержимого, запрашивается общий запрошенный URL-адрес, такой как /document.html
, и существует несколько представлений этого(например, на английском и немецком языках), и ваш сервер выбирает вариант на немецком языке, так как Accept-Language указывает значение de
, сервер будет содержать поле Vary , содержащее Accept-Language
дляпусть кэши знают, что выбор был основан на значении Accept-Language .
Но некоторые пользовательские агенты не понимают этого правильно,И в этом случае поле заголовка Vary не следует отправлять, что можно сделать, установив переменную среды специального назначения force-no-vary
.