HTTP-заголовок "Обновить"

Я автоматизирую веб-приложение (отслеживание ошибок Mantis), и я получаю от него интересный заголовок ответа под названием Refresh:

HTTP/1.x 200 OK
...
Refresh: 0;url=my_view_page.php

Кажется, что он действует так же, как meta refresh, а метод метаобработки означает, что он является эквивалентом заголовка в HTTP.

Проблема в том, что я не могу найти упоминания заголовка Refresh в HTTP-стандарте или любую другую окончательную документацию о том, как это должно быть проанализирован и что браузер должен делать, когда он встречает его.

Что здесь происходит?

Ответ 1

Насколько я знаю, Refresh (вместе с Set-Cookie и, возможно, некоторые другие проприетарные псевдо-заголовки) были созданы Netscape в самые ранние дни Интернета и были в основном (но не совсем) стандартными с тех пор. Поскольку почти каждый браузер поддерживает его, Refresh довольно безопасно использовать - и обычно это.

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

Ответ 2

из спецификации W3C HTML 4.01, цитата:

Заголовки META и HTTP

Атрибут http-equiv можно использовать вместо атрибута name и имеет особое значение, когда документы извлекаются через протокол передачи гипертекста (HTTP). HTTP-серверы могут использовать имя свойства, указанное атрибутом http-equiv, для создания заголовка [RFC822] в ответе HTTP. Подробнее о действительных HTTP-заголовках см. В спецификации HTTP ([RFC2616]).

Это означает, что при использовании тега <meta http-equiv="refresh" url="..."/> вы на самом деле инструктируете браузер действовать так, как если бы был отправлен заголовок Refresh.

хороший обзор истории его можно найти на http://www.securiteam.com/securityreviews/6Z00320HFQ.html

Ответ 4

Я считаю, что это было первоначально расширение Netscape и не было стандартизировано, потому что оно устарело W3C:

http://www.w3.org/TR/WCAG10-HTML-TECHS/#meta-element