【问题标题】:Url fragment and Referer headerUrl 片段和 Referer 标头
【发布时间】:2011-04-25 04:48:03
【问题描述】:

假设您在一个 URL 包含片段(# 之后的部分)的页面上,然后单击一个链接转到另一个页面。大多数浏览器会将原始页面的 URL 在Referer 标头中发送到服务器。我想知道的是 URL 片段是否会包含在其中。

我在野外看到了各种行为,所以这可能是特定于浏览器的。有谁知道哪些浏览器做什么? HTTP 规范对此有何规定?

【问题讨论】:

    标签: http cross-browser http-referer fragment-identifier fragment


    【解决方案1】:

    我今天在 IE 中看到了同样的行为。 我使用的是 IE 11.0.9600.17801,经检查发现“Referer”标头包含此片段标识符。

    Referer: //abc:8080/myapp/ver/index.htm#search-basics

    虽然我很确定我已经在同一个浏览器上看到过这种行为。

    【讨论】:

      【解决方案2】:

      规范说,Referer 不能包含片段标识符(每个 ABNF)。见RFC 2616, Section 14.36

      【讨论】:

      • 这在实践中是否成立?我很确定我至少已经看到一些浏览器包含它。
      • 那会很有趣;如果您可以复制它,请关注 IETF HTTPbis WG 的邮件列表。
      【解决方案3】:

      规范基本上说你可以做任何你想做的事情 - 它是一个可选的标头,我刚刚测试过 webkit 会忽略该片段,firefox 和 IE 也是如此。

      【讨论】:

        猜你喜欢
        • 2018-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-10
        • 2014-08-12
        • 2010-12-08
        • 1970-01-01
        • 2012-08-29
        相关资源
        最近更新 更多