每个浏览器的URL的最大长度是什么?

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


当前回答

为什么Internet Explorer仅限于2K,而IIS则限于16K?我不认为有意义。

所以我想开始一个关于Ajax要求URL大小限制的实验。

我设置了我的Tomcat HTTP连接器的maxHttpHeaderSize="1048576". 并准备了一个非常长的URL。

然后我发送一个请求与长的URL如下:

var url="/ajax/url-length.jsp";
jQuery.ajax(url,{data:{q:"0".repeat(1048000-url.length-4)}});

jQuery 报告完成. Tomcat 报告所要求的 URL 是 1048015 位元. 它是用 Chrome 50 和 Internet Explorer 11 测试的。

因此,网页浏览器不会故意在发送 Ajax 请求时破坏或限制您的 URL。

其他回答

实际上没有普遍的最大 URL 长度. 最大长度仅由客户端浏览器选择支持的定义,这在很大程度上有所不同. 2.083 限制仅存在于 Internet Explorer (所有版本高达 7.0). Firefox 和 Safari 的最大长度似乎是无限的,尽管不稳定性发生在 URL 达到约 65,000 个字符。

HTTP 1.1 规格说:

HTTP 中的 URI 可以以绝对的形式或与某些已知基础的 URI 相对,取决于它们的使用背景。 两种形式因绝对的 URI 总是以一个序列名称开始而有所区别。 有关 URL 合成和序列的最终信息,请参见“统一资源识别器(URI):通用序列和序列”。

正如 @Brian 提到的那样, HTTP 客户端(例如浏览器)可能有自己的限制,而 HTTP 服务器则会有不同的限制。

限制请求线指令设置一个URL的最大长度. 默认情况下,它设置为8190,这给了你很多空间. 但是,其他服务器和一些浏览器,限制长度更多。

由于所有参数都在URL线上通过,隐藏的字段密码中的项目也将在URL上显示,当然,手机也不应该用于真正的安全措施,最好考虑到化妆品安全。

似乎Chrome至少已经提高了这个限制,我把2万个字符插入了书架上,它拿走了。

Microsoft 支持表示“Internet Explorer 的最大 URL 长度为 2,083 个字符”。

IE 有更长的URL问题,Firefox 似乎在 >4k 屏幕上工作得很好。