回答
尽管HTTP协议的规范没有规定任何最大长度,但实际的限制是由网络浏览器和服务器软件强加的。
的Microsoft Internet Explorer(浏览器)
微软指出一个URL的在的Internet Explorer的最大长度为2083个字符,在URL的路径部分不超过2,048个字符。在我的测试中,尝试使用比这更长的URL会在Internet Explorer中产生一个明确的错误消息。
火狐(浏览器)
后65536个字符,在地址栏不再显示在Windows的Firefox 1.5.x.网址但是,更长的网址将起作用。我在100,000个字符后停止测试。
Safari浏览器(浏览器)
至少80,000个字符会工作。我在80,000个字符后停止测试。
歌剧院(浏览器)
至少有19万个字符会工作。我在190,000个字符后停止了测试。用于Windows的Opera 9继续在位置栏中显示完全可编辑,可复制和可粘贴的URL,即使在190,000个字符处也是如此。
的Apache(服务器)
我早期的尝试来衡量撞上了约4000个字符的服务器URL长度的限制网页浏览器最大URL长度,之后阿帕奇产生了“413实体过大”错误。我使用了目前最新的Red Hat Enterprise Linux 4中的Apache版本。官方的Apache文档仅提到了请求中单个字段的8,192字节限制。
Microsoft Internet信息服务器
默认限制为16,384个字符(是的,微软的Web服务器比微软的网络浏览器接受较长的URL)。这是可配置的。 Perl HTTP :: Daemon(服务器)
最多可以使用8,000个字节。使用Perl的HTTP :: Daemon模块构建Web应用程序服务器的用户将在所有HTTP请求标头的组合大小上遇到16,384字节的限制。这不包括POST方法表单数据,文件上传等,但它包含URL。实际上,当URL长度超过8,000个字符时,会导致413错误。这个限制可以很容易地删除。在Daemon.pm中查找所有出现的16x1024,并用更大的值替换它们。当然,这确实会增加您遭受拒绝服务攻击的风险。
建议
超长URL通常是一个错误。超过2000个字符的网址在最流行的网络浏览器中无法使用。如果您打算让您的网站为大多数互联网用户工作,请不要使用它们。
- 1. ASP.NET:查询字符串中的参数长度是否有限制?
- 2. Arduino中的字符串长度是否有限制?
- 3. 限制字符串长度
- 4. 是否有PHP curl返回值的字符串长度限制?
- 5. 在vba中查询字符串长度限制?
- 6. Android中是否存在字符串长度限制?
- 7. F#FSI - 脚本长度是否有限制?字符串文字出现过长
- 8. 是否对mysql中的查询长度有限制?
- 9. 限制XSLT中的字符串长度
- 10. 限制FreeMarker中的字符串长度
- 11. 使用$ .getJSON时是否存在字符串长度限制?
- 12. fql查询的长度是否有限制?
- 13. JS对象中的键(字符串)的长度是否有限制?
- 14. 可以传递给R中grep()的字符串长度是否有限制?
- 15. 限制URL查询长度?
- 16. DataTable中的字符串DataColunm:限制字符串的长度
- 17. 限制XML/HTML字符串长度
- 18. 限制字符串的长度
- 19. NHibernate QueryOver受字符串长度限制
- 20. 限制属性的字符串长度
- 21. Ajax字符串长度限制?
- 22. C++ - 限制字符串长度
- 23. 限制字符串的最大长度
- 24. IE工具提示字符长度是否有限制?
- 25. android editText限制字符串长度不是字符
- 26. 有没有办法限制jaxb类中字符串的长度?
- 27. stdin的长度是否有限制?
- 28. 字符串长度有限的strtod
- 29. TextBox字符长度限制
- 30. 字符长度限制$ _GET?