想象一下,您在一个 URL 有一个片段(在 之后的部分#
)的页面上,然后单击一个链接转到另一个页面。大多数浏览器会在标头中将原始页面的 URL 发送到服务器Referer
。我想知道的是 URL 片段是否会包含在其中。
我在野外看到了各种行为,所以这可能是特定于浏览器的。有谁知道哪些浏览器做什么?HTTP 规范对此有何规定?
想象一下,您在一个 URL 有一个片段(在 之后的部分#
)的页面上,然后单击一个链接转到另一个页面。大多数浏览器会在标头中将原始页面的 URL 发送到服务器Referer
。我想知道的是 URL 片段是否会包含在其中。
我在野外看到了各种行为,所以这可能是特定于浏览器的。有谁知道哪些浏览器做什么?HTTP 规范对此有何规定?
规范说,Referer 不能包含片段标识符(每个 ABNF)。请参阅RFC 2616,第 14.36 节。
我今天在 IE 中看到了同样的行为。我正在使用 IE 11.0.9600.17801,经过检查,我发现“Referer”标头包含此片段标识符。
引用者://abc:8080/myapp/ver/index.htm#search-basics
虽然我很确定我已经在同一个浏览器上看到过这种行为。
规范基本上说你可以做任何你想做的事——它是一个可选的标头,我刚刚测试过 webkit 会忽略该片段,firefox 和 IE 也是如此。