刷新HTTP头

我正在自动化一个web应用程序(螳螂错误跟踪器),我得到一个有趣的响应标题,称为刷新:

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

它看起来像元刷新一样,元刷新技术意味着它是HTTP中的头部的等价物。

问题是,在HTTP标准中找不到任何关于Refresh标题的提及,或者其他关于应该如何parsing它的权威性文档以及浏览器在遇到它时应该做什么。

这里发生了什么?

据我所知,Refresh(和Set-Cookie以及其他一些专有的伪头文件)是由Netscape在互联网的早期阶段创build的,从那时起基本上(但不完全)是标准的。 因为几乎每个浏览器都支持它,所以刷新使用起来相当安全 – 通常是这样。

我想这从来没有成为官方标准的一部分,因为他们已经有了关于状态代码的规定。

从W3C HTML 4.01规范中引用:

META和HTTP头

http-equiv属性可以用来代替name属性,并且在通过超文本传输​​协议(HTTP)检索文档时具有特殊意义。 HTTP服务器可以使用由http-equiv属性指定的属性名称在HTTP响应中创build一个[RFC822]风格的标题。 有关有效的HTTP标头的详细信息,请参阅HTTP规范([RFC2616])。

这意味着当你使用<meta http-equiv="refresh" url="..."/>标记时,你实际上是指示浏览器充当一个正在发送的Refresh标题。

可以在http://www.securiteam.com/securityreviews/6Z00320HFQ.htmlfind关于它的历史的一个很好的概述。;

根据维基百科:URLredirect :

这是Netscape的专有/非标准扩展。 它受到大多数网页浏览器的支持。

我相信它最初是一个Netscape的扩展,并没有被标准化,因为它被W3C所弃用:

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

这可能是HTTP的微软扩展; 至less他们build议使用如何:为Web服务器,站点和文件夹启用客户端拉,似乎确认元刷新语法。