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


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

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

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

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

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

5 58

5 ответов:

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

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

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

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

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

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

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

по данным Википедия: перенаправление URL:

Это собственническое / нештатное расширение компанией Netscape. Он поддерживается большинство веб-браузеров.

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

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

Это, вероятно, расширение Microsoft для HTTP; по крайней мере, они предлагают его использование на Как включить клиентский запрос для веб-серверов, сайтов и папок и это, кажется, подтверждает синтаксис meta refresh.