回答
尽管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. 限制字符串长度
- 2. 是否有PHP curl返回值的字符串长度限制?
- 3. 在vba中查询字符串长度限制?
- 4. Android中是否存在字符串长度限制?
- 5. 是否对mysql中的查询长度有限制?
- 6. 限制XSLT中的字符串长度
- 7. 限制FreeMarker中的字符串长度
- 8. 使用$ .getJSON时是否存在字符串长度限制?
- 9. 限制URL查询长度?
- 10. DataTable中的字符串DataColunm:限制字符串的长度
- 11. 限制属性的字符串长度
- 12. C++ - 限制字符串长度
- 13. Ajax字符串长度限制?
- 14. IE工具提示字符长度是否有限制?
- 15. 有没有办法限制jaxb类中字符串的长度?
- 16. 字符串长度有限的strtod
- 17. 字符长度限制$ _GET?
- 18. 核心数据是否对字符串的长度施加了限制?
- 19. stdin的长度是否有限制?
- 20. GoLang的字符串映射关键字中是否存在任何字符串长度限制?
- 21. window.location受查询字符串限制
- 22. PHP查询字符串限制
- 23. HttpClient - 查询字符串的限制?
- 24. Oracle SQL中的SQL查询字符串长度是否可以导致异常?
- 25. 使用MYSQL将字符串长度限制为最小字符
- 26. 使用VBA对字符串长度有限制吗?
- 27. 查询字符串太长
- 28. 在MySQL中使用检查限制来控制字符串长度
- 29. 是否有限制“连接”或“哪里”或SQL查询的长度?
- 30. ASP.net隐藏字段长度是否有任何限制