是否存在HTTP客户端不支持相对重定向的已知情况?

是否存在HTTP客户端不支持相对重定向的已知情况?,http,redirect,cross-browser,http-headers,Http,Redirect,Cross Browser,Http Headers,根据,最初不支持相对重定向(即HTTP位置:标头中的相对URL)。然而,这被描述为“规范中的bug”,后来在中被更改。因此,现在“官方支持”相对重定向 我的问题是:有没有已知的HTTP客户端(浏览器、工具、库等)不支持相对重定向的情况 更新: 或者,一个有效的答案可以提供一个已知接受相对重定向的HTTP客户端的详尽列表,以及版本号范围。我在做一些研究,似乎事实上大多数浏览器(以及谷歌搜索机器人)都支持该功能。不过,我没能得到一份明确的清单。最终可能会存在大约10000个http客户机,每个客户机

根据,最初不支持相对重定向(即HTTP位置:标头中的相对URL)。然而,这被描述为“规范中的bug”,后来在中被更改。因此,现在“官方支持”相对重定向

我的问题是:有没有已知的HTTP客户端(浏览器、工具、库等)不支持相对重定向的情况

更新:
或者,一个有效的答案可以提供一个已知接受相对重定向的HTTP客户端的详尽列表,以及版本号范围。

我在做一些研究,似乎事实上大多数浏览器(以及谷歌搜索机器人)都支持该功能。不过,我没能得到一份明确的清单。最终可能会存在大约10000个http客户机,每个客户机都有自己的处理头字段的方法(有些甚至可能完全忽略它)

由于RFC 7231是全新的(2014年),我的建议是不要指望它。遵循(“发送的内容要保守,接受的内容要自由”)我认为坚持明确的标准始终是一个好主意,只需将域添加到重定向中并不麻烦

根据HTTP协议,位置标头必须包含 绝对URI。[5]当在 同一个站点,使用相对URI是一个常见的错误 大多数浏览器在位置头中允许相对URI,但有些 浏览器会向最终用户显示警告。”

发件人::


就我个人而言,我已经使用相对重定向很多年了,它们适用于我测试过的每一个桌面/移动浏览器和搜索机器人。 例如,您可以使用网站管理员仪表板上的
fetchasgoogle
工具来测试googlebot


这可能有点超出范围,但谷歌也遵循
JavaScript
重定向(
window.location
)。

我现在想写一个不支持相对重定向的http客户端。:-)这是一个很好的例子:-)我不认为任何人都能提供一份详尽的清单…@MrTux我不明白为什么不能。web上充斥着有关功能X或Y的“浏览器支持”的信息,包括版本号。例如,请参见caniuse.com。另外,我相信我不是第一个遇到这个问题的人,每个已经遇到这个问题的开发人员要么从其他地方获得信息,要么自己做一些测试(并因此编制了这样一个“列表”),这并不是那么容易。如果与apache httpd一起使用,位置头可能会被自动重写。我当然不需要一个包含10000个客户端的列表,但也许一个最常用客户端的列表会有所帮助。关于Postel:RFC 7321实际上修改了编辑们认为是“RFC 2616规范中的一个bug”的内容,并且有人认为所有主要浏览器都支持这一点。重新。“将域添加到重定向并不麻烦”:这取决于。在我的用例(一个复杂的代理场景)中,服务器甚至不知道原始域(更重要的是)协议(代理也充当https隧道);RFC是。请参阅问题中指出的RFC 7231。维基百科文章引用了RFC HTTP协议。如果它引用了RFC 2616,那么它引用的是一个过时的RFC,如果您遵循了我问题中的链接,您就会知道。顺便说一句,我不知道你在看哪个版本的维基百科,但你链接到的部分实际上说:“HTTP/1.1允许相对URI引用或绝对URI引用。”并引用了RFC 7231(自2014年7月以来,该文本一直未被编辑)。