是否依赖于浏览器?另外,不同的Web堆栈对于从请求中获得的数据量有多少限制?查询字符串的最大可能长度是多少?
回答
RFC 2616(超文本传输协议 - HTTP/1.1)声明查询字符串的长度没有限制(第3.2.1节)。 RFC 3986也表示没有限制,但由于DNS限制(第2.3.3节),表示主机名限制为255个字符。
尽管规格没有指定任何最大长度,但实际限制是由网络浏览器和服务器软件强加的。基于在Boutell.com发现研究的基础上:
微软的Internet Explorer(浏览器)
微软指出,在Internet Explorer中的URL的最大长度为2,083个字符,在路径不超过2,048个字符部分网址。尝试使用超过此长度的URL会在Internet Explorer中产生明确的错误消息。微软边缘(浏览器)
极限似乎是围绕81578个字符。见URL Length limitation of Microsoft Edge铬
它停止显示在URL后64K字,但能为超过10万个字。除此之外,没有进一步的测试。火狐(浏览器)
后65536个字符,在地址栏不再显示在Windows的Firefox 1.5.x.网址但是,更长的网址将起作用。在100,000个字符后没有进一步的测试。Safari浏览器(浏览器)
至少80,000个字符会工作。除此之外,测试还没有尝试过。歌剧院(浏览器)
至少有19万个字符会工作。 190,000个字符后停止测试。 Opera 9 for Windows继续在地址栏中显示完全可编辑的 可复制和可粘贴的URL,即使在190,000个字符处也是如此。的Apache(服务器)
早期尝试来测量撞到的大约4000个字符的服务器URL长度限制,在这之后的Apache产生“413实体太大”错误的网络浏览器的最大的URL长度。使用了红帽企业Linux 4中最新的Apache版本。 Apache官方文档仅提到了请求中单个字段的8,192字节限制。Microsoft Internet信息服务器(服务器)
默认限制为16,384个字符(是的,微软的Web服务器比微软的网络浏览器接受较长的URL)。这是可配置的。Perl的HTTP ::守护程序(服务器)
最多8,000个字节会工作。使用Perl的HTTP :: Daemon模块构建Web应用程序服务器的用户将在所有HTTP请求标头的组合大小上遇到16,384字节的限制。这不包括POST方法表单数据,文件上传等,但它包含URL。实际上,当URL长度超过8,000个字符时,会导致413错误。这个限制可以很容易地删除。在Daemon.pm中查找所有出现的16x1024,并用更大的值替换它们。当然,这确实会增加您遭受拒绝服务攻击的风险。
我假设你的意思是一个uri字符串的最大长度。 This可能会有所帮助。
通常情况下,一旦URI由于太长而变得不可读,就应该使用POST请求代替。
仅仅因为有太多的数据不适合GET请求就切换到POST请求是没有意义的。 – 2010-11-09 10:20:46
不同的web堆栈确实支持不同长度的http请求。我从经验中知道,Safari的早期堆栈只支持4000个字符,因此由于USER-STATE而难以处理ASP.net页面。这甚至是POST,所以你必须检查浏览器,看看堆栈限制是什么。我认为你甚至可以在新的浏览器上达到极限。我不记得,但其中一个(IE6,我认为)有16位限制,32,768什么的限制。
虽然官方没有任何限制,许多安全配置建议指出,在服务器上maxQueryStrings应设置为1024字符数限制,而包括查询字符串整个URL应设置为2048最大字符。这是为了防止Web服务器上的缓慢HTTP请求漏洞,以防止缓慢的DDOS攻击。
- 1. .NET字符串的最大可能长度是多少?
- 2. 在Swift 2.0中,字符串的最大长度是多少?
- 3. “.bat”或“.cmd”中字符串的最大长度是多少?
- 4. 字符串的最大长度是多少?
- 5. Python字符串的最大长度是多少?
- 6. 最大长度是多少?
- 7. mongodb查询的最大长度是多少?
- 8. sqoop查询的最大长度是多少?
- 9. Informix列的最大长度是多少?可以增加多少?
- 10. 什么是字符串参数存储过程的最大长度是多少?
- 11. ListProperty的最大长度是多少?
- 12. ENUM值的最大长度是多少?
- 13. synmemo的最大长度是多少?
- 14. AJAX GET请求中查询字符串的最大长度?
- 15. 字符串的最大长度[]
- 16. 我可以传递给函数的最大字符串长度(或大小)是多少?
- 17. memcached中的最大密钥长度和最大值是多少?
- 18. vb.net中的最大标识符长度是多少?
- 19. zend查询最大字段长度
- 20. Javascript:最大字符串长度Chrome
- 21. 最大默认长度xsd字符串
- 22. f64的最大可能值是多少?
- 23. 可以作为参数传递给java中的jar文件的字符串的最大长度是多少?
- 24. 苹果ios购买收据数据可能的最大长度是多少?
- 25. Google Apps脚本中字符串的最大大小是多少?
- 26. C#中字符串的最大大小是多少?
- 27. Javascript:检查最小字符串长度
- 28. Laravel查询字符串少/大于等
- 29. Braintree付款方式nonce字符串的长度是多少?
- 30. 参数传入asm时,字符串的长度是多少?
你也可以检查这个http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-an-url – Xinus 2009-12-13 04:41:40
它只适用于GET请求! POST请求的最大大小(带或不带multipart/form-data)在这里是未知的! – peterh 2015-01-22 13:54:52