30

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

4

3 回答 3

19

哈希只是客户端,因此 HTTP 的规则可能不适用于它。

于 2011-09-28T14:39:15.193 回答
19

这取决于浏览器。我发现在 safari、chrome 和 Firefox 中,带有长哈希的 URL 是合法的,但如果是发送到服务器的 param,浏览器会显示 414 或 413 错误。

例如:一个 URLhttp://www.stackoverflow.com/?abc#{hash value with 100 thousand characters}就可以了。并且您可以使用 location.hash 来获取 javascript 中的哈希值,但是像这样的 URLhttp://www.stackoverflow.com/?abc&{query with 100 thousand characters}将是非法的,如果您将此链接粘贴到地址栏中,将给出 413 错误代码并且消息为the client issued a request that was too long. 如果那是网页中的链接,在我的计算机中,Nginx 会响应 414 错误消息。

我不知道IE中的情况。

所以我认为,URL长度的限制只是为了传输或HTTP服务器,浏览器有时会检查它,但不是每次,它总是被允许用作哈希。

于 2014-09-10T07:28:14.603 回答
3

整个网址肯定有一个长度。

RFC2616 - 超文本传输​​协议

Internet Explorer 中的最大 URL 长度为 2,083 个字符

于 2009-10-15T11:28:09.980 回答