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

URL片段的最大长度(哈希),url,hash,fragment-identifier,Url,Hash,Fragment Identifier,URL的片段部分(也称为哈希)有长度限制吗?整个URL肯定有长度限制 阅读 散列仅限于客户端,因此HTTP规则可能不适用于它。它取决于浏览器。 我发现在safari、chrome和Firefox中,带有长散列的URL是合法的,但如果是发送到服务器的param,浏览器将显示414或413错误 例如: 类似http://www.stackoverflow.com/?abc#{10万字符的哈希值}可以。您可以使用location.hash来获取javascript中的哈希值,但是像http://ww

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

整个URL肯定有长度限制

阅读


散列仅限于客户端,因此HTTP规则可能不适用于它。

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

例如: 类似
http://www.stackoverflow.com/?abc#{10万字符的哈希值}
可以。您可以使用location.hash来获取javascript中的哈希值,但是像
http://www.stackoverflow.com/?abc&{query with 100000 characters}
将是非法的,如果在地址栏中粘贴此链接,将给出413错误代码,消息为
客户端发出的请求太长
。如果这是网页中的链接,在我的电脑中,Nginx将响应414错误消息

我不知道IE的情况


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

RFC2616没有提到片段,只是说:“URI不能包含片段”这并没有回答问题哈希没有标准,因为它只是客户端的,但限制通常是。哈希实际上是URL片段,没有发送到服务器,因此从服务器角度看长度限制不适用。您是否找到任何关于客户端限制的官方(文档)信息(或没有)?