是否可以将带有 302 状态代码的响应发送到这样的 url:
问问题
6167 次
6 回答
6
是的,您可以使用片段标识符。这是 HTTP 规范中的一个已知错误。
于 2009-08-16T21:48:25.043 回答
4
按照 HTTP 规范,Location
标头字段的值必须是绝对URI值。这是根据RFC 3986(他们只是将名称从absoluteURI更改为absolute-URI):
absolute-URI = scheme ":" hier-part [ "?" query ]
所以理论上不允许片段作为值的一部分。但是浏览器可以处理它。
于 2009-08-16T11:24:17.133 回答
4
严格阅读RFC2616不允许 Location 标头值中的片段,因为它们不是绝对 URI 的一部分。然而,随着IETF 的 HTTP 重写草案 ,这个问题得到了解决。
最近, Julian在 Location 标头中比较了浏览器如何处理 URI 片段(HTML 锚标记处理的内容):http: //www.greenbytes.de/tech/tc2231/redirects.html
所以答案是:是的,您可以将片段放在 Location 标头 URI 中。
于 2009-08-19T08:57:25.537 回答
2
从PHP这样做似乎没有问题:
Header(
"Location: http://en.wikipedia.org/wiki/HTTP#Status_codes",
true,
302
);
于 2009-08-16T11:04:31.690 回答
1
是的。浏览器不会将哈希发送到服务器,而不是相反。
于 2009-08-16T11:16:51.333 回答