Заголовок HTTP "Age: 0" - PullRequest
       4

Заголовок HTTP "Age: 0"

28 голосов
/ 17 октября 2010

Для чего нужен HTTP-заголовок "Возраст"? В частности, что означает значение 0 (Age: "0")?

Ответы [ 3 ]

27 голосов
/ 17 октября 2010

См. Спецификацию HTTP 1.1 о том, для чего предназначено поле заголовка Возраст :

Поле заголовка ответа Age передает оценку отправителя количества времени, прошедшего с того момента, как ответ (или его повторная проверка) был сгенерирован на исходном сервере.

Эта информация используется промежуточными прокси для передачи оценки того, сколько лет хранимому ответу :

HTTP / 1.1 требует, чтобы исходные серверы отправляли заголовок Date, если это возможно, с каждым ответом, указывая время, когда был создан ответ (см. Раздел 14.18). Мы используем термин «date_value» для обозначения значения заголовка Date в форме, подходящей для арифметических операций.

HTTP / 1.1 использует заголовок ответа Age, чтобы передать предполагаемый возраст ответного сообщения при получении из кэша. Значение поля Age представляет собой оценку кэша времени, прошедшего с момента, когда ответ был сгенерирован или повторно проверен исходным сервером.

Кроме того, поле заголовка Age предназначено для использования только промежуточными кешами:

Наличие поля заголовка Age в ответе подразумевает, что ответ не из первых рук.

Это означает, что наличие поля заголовка Age: 0 означает, что полученный ответ был отправлен промежуточным кешем и имеет возраст всего 0 секунд. Так что, вероятно, он был просто получен с исходного сервера перед отправкой клиенту.

5 голосов
/ 03 ноября 2011

"Заголовок Age указывает оценку в секундах возраста ресурса запрашиваемого ресурса с момента его последнего запроса с веб-сервера происхождения."

"Поскольку сетевые задержки могут привести кПри подсчете неверно низкого возраста возраст пересчитывается на каждом шаге пути возврата на основе расчетного времени между прыжками. Вместо того, чтобы зависеть от вычислений, выполненных другими промежуточными прокси, возраст обычно рассчитывается как разница между текущим значением проксиdate и общий заголовок Date, включенный в ответ HTTP. Если несинхронизированные часы делают это вычисление, приводящее к отрицательной разнице, используется возраст 0."

Chris Shiflett," HTTP DeveloperСправочник », стр. 83.

3 голосов
/ 17 октября 2010

Это указано в протоколе :

Поле заголовка ответа Age передает оценку отправителя количество времени с момента ответа (или его повторной проверки) генерируется на исходном сервере. Кэшированный ответ «свежий», если его возраст не превышает его свежести. Возрастные значения рассчитывается, как указано в разделе 13.2.3.

   Age = "Age" ":" age-value
   age-value = delta-seconds

Возрастные значения - неотрицательные десятичные целые числа, представляющие время в секунд. Если кеш получает значение больше положительного целое число, которое он может представлять, или если любой из его вычислений возраста переполнения, он ДОЛЖЕН передать заголовок Age со значением 2147483648 (2 ^ 31). Сервер HTTP / 1.1, который включает кеш, ДОЛЖЕН включить поле заголовка возраста в каждый ответ, сгенерированный из его собственный кеш. Кеши ДОЛЖНЫ использовать арифметический тип не менее 31 биты диапазона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...