URL 在不同浏览器中的最大长度是多少?

如何解决URL 在不同浏览器中的最大长度是多少??

开发过程中遇到URL 在不同浏览器中的最大长度是多少?的问题如何解决?下面主要结合日常开发的经验,给出你关于URL 在不同浏览器中的最大长度是多少?的解决方法建议,希望对你解决URL 在不同浏览器中的最大长度是多少?有所启发或帮助;

问题描述

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

如果您的目标是特定浏览器,请参阅下文以了解有关特定限制的更多详细信息。

更长的答案 - 首先,标准......

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

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

该 RFC 已被RFC7230废弃,RFC7230是 HTTP/1.1 规范的更新。它包含类似的语言,但也继续提出以下建议:

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

…和现实

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

极长的 URL 通常是一个错误。如果您打算让您的站点为大多数 Internet 用户服务,请不要使用它们。

(注意:这是一篇2006 年写的文章的引述,但在 2015 年 IE 的使用量下降意味着更长的 URL确实适用于大多数人。但是,IE 仍然有限制......)

Internet Explorer 的限制…

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

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

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

搜索引擎如 URL < 2048 个字符…

请注意,站点地图协议允许站点通知搜索引擎有关可用页面的信息,其 URL 限制为 2048 个字符。如果您打算使用站点地图,已经为您确定了一个限制!

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

CDN 有限制

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

额外的浏览器综述

我针对配置了非常大的LimitRequestLineLimitRequestFieldSize的 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

这些信息是最新的吗?

这是一个很受欢迎的问题,由于最初的研究已有大约 14 年的历史,我会尽量保持最新:截至,建议仍然有效。尽管 IE11 可能接受更长的 URL,但普遍存在的旧 IE 安装加上搜索引擎的限制意味着保持在 2000 个字符以下是最好的一般策略。

解决方法

URL 在不同浏览器中的最大长度是多少?它是否因浏览器而异?

最大 URL 长度是 HTTP 规范的一部分吗?

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

猜你在找的编程问答相关文章

怎样才能让 Git“忘记”一个被跟踪但现在在 .gitignore 中的文件?
Python 中的metaclasses是什么?
如何在 Linux 上查找包含特定文本的所有文件?
如何从异步调用返回响应
如何在一个表达式中合并两个字典(取字典的并集)?
HTTP 中的 POST 和 PUT 有什么区别?
使用 Git 将最近的提交移动到新分支
在 JavaScript 比较中应该使用哪个等于运算符 (== vs ===)?
微信公众号搜索 “ 程序精选 ” ,选择关注!
微信公众号搜 "程序精选"关注