static function OnBeforeRequest(oSession: Session) {
if (oSession.url.Contains("localhost:50766")) {
oSession.RequestHeaders.Remove("Referer");
}
哪个做得很好 .
Chrome: 得到15613个字符 . (我猜这是IIS的16K限制)
它又失败了:
<BODY><h2>Bad Request - Request Too Long</h2>
<hr><p>HTTP Error 400. The size of the request headers is too long.</p>
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36
15613
Firefox:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0
15708
Mozilla/5.0 (Linux; Android 5.1; Android SDK built for x86 Build/LKY45) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/39.0.0.0 Mobile Safari/537.36
7377
Internet Explorer 11
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
4043
Internet Explorer 10
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
4043
Internet Explorer 9
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
4043
8
URI RFC(其中URL是子集)未定义最大长度,但是,它建议URI的主机名部分(如果适用)长度不超过255个字符:
16 回答
我有使用SharePoint 2007,2010的经验,在这种情况下,SharePoint可以从服务器端创建长度URL的限制,因此它主要取决于:1)客户端(浏览器,版本和操作系统)和2)服务器技术,IIS,Apache等
Chrome似乎至少提升了此限制 . 我将20,000个字符粘贴到书签中,然后就可以了 .
Sitemaps protocol,这是网站管理员向搜索引擎通知其网站上的网页(也由Google在网站站长工具中使用)的一种方式,支持少于2048个字符的网址 . 因此,如果您计划将此功能用于搜索引擎优化,请将此考虑在内 .
限制请求行指令设置URL的最大长度 . 默认情况下,它设置为8190,这为您提供了大量空间 . 但是其他服务器和一些浏览,限制了更长的时间 .
由于所有参数都在URL行上传递,因此隐藏字段密码中的项目也将显示在URL中 . 移动设备都不应该用于真正的安全措施,并且应该被视为化妆品安全性 .
在URL as UI雅各布尼尔森建议:
这不是最大值,但如果您希望共享您的URL,我会认为这是一个实际的最大值 .
WWW FAQs: What is the maximum length of a URL?基于经验测试和研究有自己的答案 . 简短的回答是,超过2048个字符会使Internet Explorer不满意,因此这是您应该使用的限制 . 请参阅该页面以获得详细的答案 .
我写了这个测试,一直在向参数添加
'a'
,直到浏览器失败C# part:
View:
PART 1
在Chrome上,我得到了:
然后爆炸:
Internet Explorer 8和Firefox上也一样
PART 2
我去了简易模式added additional limits to IISExpress
applicationhost.config
和web.config
设置maxQueryStringLength="32768"
.在7744个字符之后 .
PART 3
Added
这根本没有帮助 . 我最终决定使用fiddler从头文件中删除引用者 .
哪个做得很好 .
Chrome: 得到15613个字符 . (我猜这是IIS的16K限制)
它又失败了:
Firefox:
Internet Explorer 8 因iexplore.exe崩溃而失败 .
2505之后
Android Emulator
Internet Explorer 11
Internet Explorer 10
Internet Explorer 9
URI RFC(其中URL是子集)未定义最大长度,但是,它建议URI的主机名部分(如果适用)长度不超过255个字符:
如其他帖子所述,某些浏览器对URL的长度有实际限制 .
Microsoft Support说"Maximum URL length is 2,083 characters in Internet Explorer" .
IE的URL存在问题 . Firefox似乎可以正常运行> 4k字符 .
ASP.NET 2和SQL Server报告服务2005的限制为2028.我发现这很困难,我的动态URL生成器不会将某些参数传递给超出该点的报告 . 这是在Internet Explorer 8下 .
简答 - 事实上限制为2000个字符
如果您将URL保持在2000个字符以下,它们几乎可以在客户端和服务器软件的任何组合中使用 .
如果您要定位特定浏览器,请参阅下面的详细信息以了解具体限制 .
更长的答案 - 首先,标准......
RFC 2616(超文本传输协议HTTP / 1.1)第3.2.1节说
该RFC已被RFC7230废弃,这是对HTTP / 1.1规范的刷新 . 它包含类似的语言,但也继续建议:
......和现实
这就是标准所说的 . 有关实际情况,请参阅this research over at boutell.com以了解各个浏览器和服务器实现将支持哪些内容 . 值得一读,但执行摘要是:
(注意:这是2006年写的一篇文章的引用,但在2015年IE的使用率下降意味着更长的URL确实适用于大多数 . 但是,IE仍然有限制...)
Internet Explorer的局限性......
IE8's maximum URL length is 2083 chars,好像IE9 has a similar limit .
我测试了IE10,地址栏只接受2083个字符 . 您可以单击长于此的URL,但地址栏仍将仅显示此链接的2083个字符 .
有一个nice writeup on the IE Internals blog进入了一些背景 .
有混合报告IE11支持更长的URLS - 请参阅下面的评论 . 鉴于有些人报告问题,一般建议仍然存在 .
搜索引擎,如网址<2048字符...
请注意,允许网站通知搜索引擎可用网页的sitemaps protocol在网址中限制为2048个字符 . 如果您打算使用站点 Map ,已经为您决定了限制! (见下文Calin-Andrei Burloiu's answer)
从2010年到maximum URL length that search engines will crawl and index也有一些研究 . 他们发现限制是2047个字符,这似乎与sitemap协议规范相关 . 但是,他们还发现Google SERP工具无法处理超过1855个字符的网址 .
其他浏览器综述
我针对配置了非常大的LimitRequestLine和LimitRequestFieldSize的Apache 2.4服务器测试了以下内容 .
另请参阅下面的Matas Vaitkevicius的this answer .
这些信息是最新的吗?
这是一个很受欢迎的问题,因为最初的研究大约有12年的历史,我会尽量保持最新:截至 Sep 2018 ,这个建议仍然存在 . 即使IE11可能接受更长的URL,但旧的IE安装无处不在以及搜索引擎限制意味着保持在2000个字符以下是最好的一般策略 .
为什么Internet Explorer限制只有2K,而IIS限制为16K?我认为这没有道理 .
所以我想开始一个关于Ajax请求URL大小限制的实验 .
我已经设置了我的Tomcat HTTP连接器的maxHttpHeaderSize =“1048576” . 并准备了一个很长的URL .
然后我发送一个带有长URL的请求,如下所示:
jQuery报告完成了 . Tomcat报告请求的URL是1048015字节 . 它使用Chrome 50和Internet Explorer 11进行了测试 .
因此,在发送Ajax请求时,Web浏览器不会故意截断或限制您的URL .
HTTP 1.1 specification说:
如@Brian所述,HTTP客户端(例如浏览器)可能有自己的限制,HTTP服务器将有不同的限制 .
我遇到的最长网址是data URLs
来自Google图像结果的示例图片网址(11747个字符)
实际上没有通用的最大URL长度 . 最大长度仅由客户端浏览器选择支持的内容确定,其变化很大 . 2,083限制仅存在于Internet Explorer中(所有版本最高为7.0) . Firefox和Safari中的最大长度似乎是无限的,尽管URL达到65,000个字符时会出现不稳定 . Opera似乎没有任何最大URL长度,并且不会在极长的时间内出现不稳定性 .
在iOS上,URL方案没有限制 . 即使是300 MB长的URL也被接受 . 您可以尝试这样的长网址:
如果成功,请 grab :