Что произойдет, если в Cache-Control есть `no-cache` и` max-age = 900`? - PullRequest
0 голосов
/ 26 апреля 2018

Что произойдет, если я установлю ответ сервера как: Cache-Control: private,no-cache,max-age=900? Что произойдет, если заголовок выглядит так: Cache-Control: public,no-cache,max-age=900

Поскольку он имеет no-cache, учитывает ли браузер (или прокси-сервер) max-age?

1 Ответ

0 голосов
/ 06 мая 2018

Как указано в документах RFC :

Если в директиве no-cache не указано имя поля, тогда кеш НЕ ДОЛЖЕН использовать ответ для удовлетворения последующего запроса без успешная повторная проверка с сервером происхождения. Это позволяет происхождение сервер для предотвращения кэширования даже кешами, которые были настроены на возвращать устаревшие ответы на клиентские запросы.

В результате, если no-cache было определено в ответе сервера, это означает, что браузер (и любые промежуточные кэши) будет «повторной проверкой» при каждом запросе (он же будет делать запрос на исходный сервер и возвращать его ответ). вместо использования любого кэшированного содержимого).

Итак, чтобы четко ответить на ваш вопрос:

Поскольку он не имеет кеша, учитывает ли браузер (или прокси-сервер) максимальный возраст?

Нет, браузер не будет учитывать max-age (учитывая, что браузер может обрабатывать директиву no-cache, поскольку это может не распознаваться некоторыми браузерами / кэшами HTTP 1.0).

...