RFC: 2068
Оригинал: Hypertext Transfer Protocol - HTTP/1.1
Другие версии: RFC 2616
Категория: Предложенный стандарт
Дата публикации:
Авторы: , , , ,
Перевод: Алексей Симонов

13.2.5. Значения однозначного устаревания

Поскольку значения expiration назначены оптимистично, он возможен для двух кэшей содержать новые значения для того же самого ресурса, которые отличны.

Если клиент, выполняющий поиск, получает ненепосредственный ответ для запроса, который был уже нов в его собственном кэше, и заголовок Date в его существующем элементе кэша более нов чем Date на новом ответе, то клиент МОЖЕТ проигнорировать ответ. Если так, он МОЖЕТ повторить запрос с "Cache-Control: max-age =0" директив (см. раздел 14.9), чтобы вызвать проверку с сервером происхождения.

Если у кэша есть два новых ответа для того же самого представления с другими объектами для проверки правильности, он ДОЛЖЕН использовать тот с более свежим заголовком Date. Эта ситуация может возникнуть, потому что кэш объединяет ответы от других кэшей, или потому что клиент попросил перезагрузку или придание вновь юридической силы очевидно нового элемента кэша.

13.2.6. Устранение неоднозначности Множественных Ответов

Поскольку клиент может получать ответы через множественные пути, так, чтобы некоторые ответы текли через один набор кэшей и другого потока ответов через другой набор кэшей, клиент может получить ответы в порядке, отличном от этого, в котором сервер происхождения отправлял им. Мы хотели бы, чтобы клиент использовал последний раз сгенерированный ответ, даже если старшие ответы все еще очевидно новы.

Ни тэг объекта, ни значение expiration не могут наложить упорядочение на ответы, так как он возможен, что более поздний ответ преднамеренно несет более раннее время expiration. Однако, HTTP/1.1 спецификация требует передачи заголовков Date на каждом ответе, и значения Date упорядочены степени детализации одной секунды.

Когда клиент пытается повторно проверить достоверность элемента кэша, и ответ, который он получает, содержит заголовок Date, который оказывается старший чем тот для существующего элемента, тогда клиент ДОЛЖЕН повторить запрос безоговорочно, и включить

Cache-Control: max-age =0

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

Cache-Control: no-cache

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

Если значения Date равны, то клиент может использовать или ответ (или, если он чрезвычайно благоразумен, может запросить новый ответ). Серверы не ДОЛЖНЫ зависеть у клиентов, являющихся способным выбрать deterministically между ответами, сгенерированными в течение той же самой секунды, если их времена expiration накладываются.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.