2009-10-15 143 views
19

是否有一个URL(也被称为散列)的片段部分的长度的限制?URL片段(散列)的最大长度

+0

没有为散列没有标准,因为它是客户端的唯一,但限制是通常[非常高(http://stackoverflow.com/a/25759637/405550)。 – Zaz 2017-02-03 21:06:37

回答

13

哈希只是客户端,所以对于HTTP规则可能并不适用于它。

+0

“哈希”实际上是URL片段,并且不会发送到服务器,因此从服务器角度来看,长度限制不适用。 – 2017-11-10 03:23:41

7

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

例如: 像http://www.stackoverflow.com/?abc#{hash value with 100 thousand characters}的URL都会好的。你可以使用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服务器,浏览器有时会检查它,但不是每一个时间,它都会被允许用作散列。