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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了URL片段的最大长度(哈希)相关的知识,希望对你有一定的参考价值。

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

答案

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

RFC2616 - Hypertext Transfer Protocol

Maximum URL length is 2,083 characters in Internet Explorer

What is the maximum length of a URL?

另一答案

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

另一答案

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

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

我不知道IE中的情况。

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

以上是关于URL片段的最大长度(哈希)的主要内容,如果未能解决你的问题,请参考以下文章

从 URL 获取片段(哈希“#”后的值)[关闭]

如何从 URL 获取片段标识符(哈希 # 后的值)?

Symfony2 将哈希片段参数附加到分页 URL

如何在Angular2 rc3路由中处理来自oauth重定向url的哈希片段

下文中的哈希片段指的是啥?

URL 片段中的多个参数