HTTP: объединение кеширования срока действия и проверки

У меня проблемы с формулировкой заголовков HTTP-кеша для следующей ситуации.

На нашем сервере есть большие данные, которые меняются, возможно, пару раз в неделю. Я хочу, чтобы браузеры кэшировали эти данные. Кроме того, я хочу минимизировать задержку от условных запросов, поскольку сеть ненадежна.

Конечное поведение, которое я ищу, таково:

  1. Клиент запрашивает ресурс, которого раньше не видел.
  2. Сервер отвечает ресурсом вместе с ETag и max-a ge (24 часа).
  3. Пока не пройдет 24 часа, клиент будет использовать кэшированный ресурс.
  4. По истечении срока действия клиент выполнит запрос проверки ( If-None-Match: [etag ] )
  5. Если ресурс не изменился:
    • сервер отвечает 304 Not Modified
    • клиент каким-то образом проинформирован о том, что существующий ресурс имеет новую дату истечения срока действия через 24 часа
    • вернуться к шагу 3

Сводится к сути ... может ли ответ 304 содержать новый максимальный возраст ? Или исходный max-age учитывается для последующих запросов?

19
задан BartoszKP 24 January 2014 в 01:37
поделиться