14.45. Warning
Поле заголовка ответа Warning используется, чтобы нести дополнительную информацию о состоянии ответа, который не может быть отражен кодом состояния ответа. Эта информация обычно, хотя не исключительно, используется, чтобы предупредить о возможной нехватке семантической прозрачности от кэширования операций.
Заголовки Warning отправляют с ответами, используя:
Warning = "Warning" ":" 1#warning-value warning-value = warn-code SP warn-agent SP warn-text warn-code = 2DIGIT warn-agent = ( host [ ":" port ] ) | pseudonym ; the name or pseudonym of the server adding ; the Warning header, for use in debugging warn-text = quoted-string
Ответ может нести больше чем один заголовок Warning.
Предупреждать — текст должен быть на естественном языке и наборе символов, который, наиболее вероятно, будет понятен человеческому пользователю, получающему ответ. Это решение может быть основано на любом доступном знании, например, местоположении кэша или пользователя, поля Accept-Language в запросе, поля Content-Language в ответе, и т.д. Язык значения по умолчанию является английским, и набор символов значения по умолчанию — ISO8859-1.
Если набор символов кроме ISO-8859-1 используется, он ДОЛЖЕН быть закодирован в том, чтобы предупреждать — текст, используя метод, описанный в RFC 1522 [14].
Любой сервер или кэш могут добавить заголовки Warning к ответу. Новые заголовки Warning должны быть добавлены после любых существующих заголовков Warning. Кэш не ДОЛЖЕН удалить заголовок Warning, который он получил с ответом. Однако, если кэш успешно проверяет достоверность элемента кэша, он ДОЛЖЕН удалить любые заголовки Warning, ранее приложенные к тому элементу кроме как определено для специфичных кодов Warning. Он ДОЛЖЕН тогда добавить любые заголовки Warning, полученные в ответе проверки достоверности. Другими словами, заголовки Warning — те, которые были бы присоединены к новому релевантному ответу.
Когда множественные заголовки Warning присоединены к ответу, user agent ДОЛЖЕН отобразить так многих из них насколько возможно, в порядке, что они появляются в ответе. Если он не возможен отобразить все предупреждения, user agent должен следовать за этой эвристикой:
- Предупреждения, которые появляются ранними в ответе, берут приоритет над теми, которые появляются позже в ответе.
- Предупреждения в предпочтительном наборе символов пользователя берут приоритет над предупреждениями в других наборах символов, но с идентичными предупре-кодами и предупре-агентами.
Системы, которые генерируют множественные заголовки Warning, должны заказать им с этим поведением user agent в уме.
Это — список определенных в настоящий момент предупре-кодов, каждый с рекомендуемым предупреждает — текст на английском языке, и описание его значения.
- 10 Ответов являются устарелыми
- ДОЛЖЕН быть включен всякий раз, когда возвращенный ответ устарелый. Кэш может добавить это предупреждение любому ответу, но никогда, возможно, не удаляет его, пока ответ, как не известно, нов.
- 11 Приданий вновь юридической силы терпели неудачу
- ДОЛЖЕН быть включен, если кэш возвращает устарелый ответ, потому что попытка повторно проверить достоверность ответа терпела неудачу, из-за неспособности достигнуть сервера. Кэш может добавить это предупреждение любому ответу, но никогда, возможно, не удаляет его, пока ответ успешно не повторно утвержден.
- 12 операций Disconnected
- ДОЛЖЕН быть включен, если кэш преднамеренно разъединен от остальной части сети сроком на время.
- 13 Эвристики expiration
- ДОЛЖЕН быть включен, если бы кэш heuristically выбрал больше время существования свежести, чем 24 часа и возраст ответа больше чем 24 часа.
- 14 Трансформаций применялись
- ДОЛЖЕН быть добавлен промежуточным кэшем или прокси, если он применяет какую-нибудь трансформацию, изменяющую content-coding (столь же указанный в заголовке Content-Encoding) или media-type (как определено в заголовке Content-Type) ответа, если этот код Warning уже не появляется в ответе. Не ДОЛЖЕН быть удален из ответа даже после придания вновь юридической силы.
- 99 Разных предупреждений
- Текст предупреждения может включить произвольную информацию, которая будет представлена человеческому пользователю, или регистрирована. Система, получающая это предупреждение, не ДОЛЖНА предпринять автоматизированное действие.