假设您正在浏览带有片段的URL页面(#后面的部分),并单击链接以转到另一个页面。大多数浏览器将在Referer
标头中向服务器发送原始页面的URL。我想知道的是,URL片段是否也会被包含在内。
我已经看到了一些不同的行为,所以这可能是特定于浏览器的。有人知道哪些浏览器会怎样做吗?HTTP规范对此有何规定?
假设您正在浏览带有片段的URL页面(#后面的部分),并单击链接以转到另一个页面。大多数浏览器将在Referer
标头中向服务器发送原始页面的URL。我想知道的是,URL片段是否也会被包含在内。
我已经看到了一些不同的行为,所以这可能是特定于浏览器的。有人知道哪些浏览器会怎样做吗?HTTP规范对此有何规定?
规范指出 Referer 不能包含片段标识符(根据 ABNF 定义)。请参见RFC 2616,第14.36节。
我今天在IE中看到了相同的行为。
我使用的是IE 11.0.9600.17801,经过检查,我发现'Referer'头包含此片段标识符。
Referer: //abc:8080/myapp/ver/index.htm#search-basics
尽管我相当确定我已经在同一浏览器上看到过这种行为。
规范基本上说你可以做任何你想做的事情 - 这是一个可选的头部,我只是测试了 Webkit 忽略了片段,Firefox 和 IE 也是如此。