网址的片段部分是否有长度限制(也称为哈希)?
答案 0 :(得分:14)
哈希只是客户端,因此HTTP的规则可能不适用于它。
答案 1 :(得分:8)
整个网址肯定有一个长度。
读
RFC2616 - Hypertext Transfer Protocol
答案 2 :(得分:8)
这取决于浏览器。 我发现在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}
这样的网址将是非法的,如果您将此链接粘贴到地址栏中,则会给出413错误代码并且消息为{{ 1}}。如果这是网页中的链接,在我的计算机中,Nginx会响应414错误消息。
我不知道IE中的情况。
所以我认为,URL长度的限制只适用于传输或HTTP服务器,浏览器有时会检查它,但不是每次都检查它,并且它总是被允许用作哈希值。