根据RFC 2616, section 14.30,最初不支持相对重定向(即HTTP位置:标头中的相对URL)。然而,这被描述为“规范中的错误”,后来在RFC 7231, section 7.1.2中被更改。因此,相对重定向现在“正式支持”。
我的问题是:是否有任何已知的HTTP客户端案例(浏览器,工具,库......)不支持相对重定向?
更新 或者,有效的答案可以提供已知可接受相对重定向的HTTP客户端的详尽列表,以及版本号范围。
答案 0 :(得分:3)
我正在进行一些研究,看起来事实上大多数浏览器(以及Googles搜索机器人)都支持该功能。虽然我无法获得明确的名单。最终可能存在大约10000个http客户端,每个客户端都有自己的方式来处理头字段(有些甚至可能完全忽略它)。
由于RFC 7231很新(2014),我的建议是不要指望它。关注Postel's law("在发送的内容中要保守,在接受的内容中保持开放态度")我认为坚持明确标准始终是一个好主意,只需将域添加到重定向即可#&# 39;很麻烦。
答案 1 :(得分:0)
“根据HTTP协议,Location头必须包含 绝对URI。[5]当从一个页面重定向到另一个页面时 同一站点,使用相对URI是一个常见的错误。结果是 大多数浏览器都容忍Location头中的相对URI,但有些 浏览器向最终用户显示警告。“
来自:http://en.wikipedia.org/wiki/URL_redirection#Using_server-side_scripting_for_redirection:
就个人而言,我多年来一直在使用相对重定向,他们使用每一个桌面/移动浏览器,并搜索我测试过的机器人。
您可以使用网站管理员信息中心上的fetch as google
工具测试谷歌机器人。
这可能有点超出范围,但谷歌也遵循JavaScript
重定向(window.location
)。