URL的字符数限制是多少?

URL的字符数限制是什么,特别是如果URL是由表单的GET方法形成的。

回答:

如果您将网址的字符数保持在2000个以下,则它们几乎可以在客户端和服务器软件的任何组合中使用。

如果您要定位特定的浏览器,请参阅下文以了解更多特定限制。

RFC 2616(超文本传输​​协议HTTP / 1.1)第3.2.1节说

HTTP协议对URI的长度没有任何先验限制。服务器必须能够处理它们服务的任何资源的URI,并且如果它们提供可以生成此类URI的基于GET的形式,则应当能够处理无限长度的URI。如果URI的长度超出服务器的处理能力,则服务器应返回414(请求URI太长)状态(请参见10.4.15节)。

该RFC已被RFC7230取代,后者是HTTP / 1.1规范的更新。它包含类似的语言,但也建议这样做:

在实践中发现了对请求线长度的各种特殊限制。建议所有HTTP发送者和接收者至少支持8000个八位位组的请求行长度。

这就是标准所说的。对于现实中,有上一篇文章boutell.com所讨论什么个人的浏览器和服务器实现将支持(链接进入互联网档案备份)。执行摘要是:

极长的URL通常是一个错误。超过2,000个字符的URL在大多数流行的Web浏览器中不起作用。如果您打算让您的网站适合大多数Internet用户,请不要使用它们。

(注意:这是2006年写的文章的引文,但2015年IE的使用率下降意味着更长的URL 可以为大多数人使用。但是,IE仍然有局限性…)

IE8的最大URL长度为2083个字符,看来IE9也有类似的限制。

我已经测试了IE10,并且地址栏仅接受2083个字符。您可以单击一个比此更长的URL,但是地址栏仍将仅显示此链接的2083个字符。

IE Internals博客上有一篇不错的文章,它涉及了一些背景知识。

IE11支持更长的URLS的报告混合-请参阅下面的评论。鉴于有些人报告问题,一般建议仍然有效。

请注意,允许站点通知搜索引擎可用页面的sitemaps协议在URL中限制为2048个字符。如果您打算使用站点地图,那么将为您确定一个限制!(请参阅下面的Calin-Andrei Burloiu的答案)

从2010年开始,还有一些针对搜索引擎将抓取和编制索引的最大URL长度的研究。他们发现限制为2047个字符,这似乎与站点地图协议规范相关。但是,他们还发现Google SERP工具无法处理超过1855个字符的URL。

CDN还对URI长度施加了限制,并且414 Too long request在达到这些限制时将返回a ,例如:

  • Fastly 8Kb
  • CloudFront 8Kb
  • CloudFlare 32Kb

    (由于在评论中提供了该信息,因此致谢timrs2998)

我针对配置了非常大的LimitRequestLine和LimitRequestFieldSize的Apache 2.4服务器测试了以下内容。

Browser     Address bar   document.location

or anchor tag

------------------------------------------

Chrome 32779 >64k

Android 8192 >64k

Firefox >64k >64k

Safari >64k >64k

IE11 2047 5120

Edge 16 2047 10240

这些信息是最新的吗?

这是一个很受欢迎的问题,由于原始研究已有12年的历史,所以我将尝试使其保持最新:截至2020年1月,该建议仍然有效。即使IE11可能接受更长的URL,但较旧的IE安装的普遍存在以及搜索引擎的限制意味着,最好将一般字符数控制在2000个字符以内。

以上是 URL的字符数限制是多少? 的全部内容, 来源链接: utcz.com/qa/434356.html

回到顶部