是否可以将包含302状态代码的响应发送到这样的网址:
答案 0 :(得分:5)
遵循HTTP规范,Location
header field的值必须是 absoluteURI 值。这是根据RFC 3986(他们只是将名称从 absoluteURI 更改为 absolute-URI ):
absolute-URI = scheme ":" hier-part [ "?" query ]
因此理论上,片段不允许作为值的一部分。但是浏览器可以处理它。
答案 1 :(得分:5)
是的,您可以使用片段标识符。这是HTTP规范中的一个已知错误。
答案 2 :(得分:3)
严格阅读RFC2616不允许位置标头值中的片段,因为它们不是绝对URI的一部分。但是,使用IETF's HTTP rewrite draft this was fixed。
最近Julian比较了浏览器如何处理位置标头中的URI片段(这是HTML锚标记处理的内容):http://www.greenbytes.de/tech/tc2231/redirects.html
所以答案是:是的,您可以将片段放在Location头URI中。
答案 3 :(得分:2)
从PHP中这样做似乎没有问题:
Header(
"Location: http://en.wikipedia.org/wiki/HTTP#Status_codes",
true,
302
);
答案 4 :(得分:1)
是。它是不向服务器发送哈希的浏览器,而不是相反。
答案 5 :(得分:1)