代码之家  ›  专栏  ›  技术社区  ›  Andreas Köberle

URL片段的最大长度(哈希)

  •  20
  • Andreas Köberle  · 技术社区  · 16 年前

    URL的片段部分是否有长度限制(也称为 搞砸 )是吗?

    3 回复  |  直到 8 年前
        2
  •  14
  •   Ben Noland    14 年前

    哈希仅为客户端,因此HTTP规则可能不适用于它。

        3
  •  8
  •   LCB    8 年前

    这取决于浏览器。 我发现在Safari、Chrome和Firefox中,具有长哈希的URL是合法的,但是如果它是发送到服务器的参数,浏览器将显示414或413错误。

    例如: 类似URL的URL http://www.stackoverflow.com/?abc#{hash value with 100 thousand characters} 会好的。您可以使用location.hash来获取javascript中的hash值,但URL类似 http://www.stackoverflow.com/?abc&{query with 100 thousand characters} 将是非法的,如果您将此链接粘贴到地址栏中,将给出413错误代码,消息为 the client issued a request that was too long . 如果这是我的电脑网页上的链接,nginx会回复414错误信息。

    我不知道IE的情况。

    因此,我认为,URL长度的限制仅仅是为了传输或HTTP服务器,浏览器有时会检查它,但不是每次都检查它,并且总是允许它作为哈希使用。