我正在自动化一个Web应用程序(Mantis bug跟踪器),我从中获得了一个有趣的响应头,名为Refresh:
HTTP/1.x 200 OK
...
Refresh: 0;url=my_view_page.php
它似乎与meta refresh的行为方式相同,元刷新技术暗示它与HTTP中的标头等效。
问题是,我在HTTP standard或其他任何关于如何解析它以及浏览器遇到它时应该做什么的权威文档中都没有提到任何提及。
这里发生了什么?
答案 0 :(得分:56)
据我所知,刷新(连同Set-Cookie和可能的其他专有伪标题)是由Netscape在互联网的早期创建的,从那时起基本上(但不是很)标准。因为几乎每个浏览器都支持它,所以刷新使用起来非常安全 - 通常是。
我猜它从未成为官方标准的一部分,因为他们已经有了状态代码的规定。
答案 1 :(得分:18)
来自W3C HTML 4.01规范,引用:
META和HTTP标头
可以使用http-equiv属性代替name属性,并且在通过超文本传输协议(HTTP)检索文档时具有特殊意义。 HTTP服务器可以使用http-equiv属性指定的属性名称在HTTP响应中创建[RFC822]样式的标头。有关有效HTTP标头的详细信息,请参阅HTTP规范([RFC2616])。
这意味着当您使用<meta http-equiv="refresh" url="..."/>
标记时,实际上是在指示浏览器就像发送Refresh
标题一样。
可以在http://www.securiteam.com/securityreviews/6Z00320HFQ.html
找到有关其历史的详细概述答案 2 :(得分:12)
这是专有/非标准 由Netscape扩展。它受到支持 大多数网络浏览器。
答案 3 :(得分:5)
我认为它最初是Netscape扩展,并且没有标准化,因为W3C已弃用它:
答案 4 :(得分:0)
“刷新” HTTP响应标头已经标准化(对于Web浏览器, 无论如何):
该URL看起来不太稳定,因此以下是相关步骤 2019-12-03:
- 如果响应具有一个
Refresh
标头,则:
- 让 value 为标头值的同构解码。
- 使用 document 和 value 运行共享的声明式刷新步骤。
答案 5 :(得分:-5)
它可能是HTTP的Microsoft扩展;至少他们建议在HOW TO: Enable Client Pull for Web Servers, Sites, and Folders使用它,它似乎证实了元刷新语法。