URL最大长度限制相关数据的验证
的说法,URL不能大于255bytes确实存在,如用来:
复制代码代码如下所示:
HTTP协议对URI的长度没有任何先验限制。服务器必须能够处理任何资源服务的URI,并应提供的基础形式,如果他们有可能会产生这样的URI能够处理无限长的URI。服务器应该返回414(请求URI太长)状态如果URI比服务器可以处理更长(见第10.4.15)。
注意:服务器应该根据URI长度为255而谨慎吗
正如你可以看到从前面一点,255bytes的声明也是兼容性。事实上,现代的浏览器的限制如下:
复制代码代码如下所示:
微软Internet Explorer(浏览器)
微软声明Internet Explorer中URL的最大长度是字符不超过2083,超过URL路径部分的2048个字符。在我的测试中,使用URL长于此的尝试在Internet Explorer中产生了一个明确的错误消息。
火狐(浏览器)
在65536个字符之后,位置栏不再显示URL、URL、。
Safari(浏览器)
至少有80000个字符可以工作。我停止了80000个字符的测试。
Opera(浏览器)
至少有190000个字符可以工作。我停止了190000个字符的测试。歌剧9 9,字符,和其他两个是190000。
Apache(服务器)
我早期尝试在Web浏览器中测量最大URL长度时遇到了大约4000个字符的服务器URL长度限制,Apache在此之后产生了一个太大的错误。i 413实体使用当前最新的Apache构建,在红帽企业Linux官方Apache文件中找到,只有4。在请求中提到单个字段的8192字节限制。
信息服务器
默认限制是16384个字符(是的,微软的Web服务器接受更长的URL)。
守护进程(服务器)
最多8000个字节可以工作。使用Perl的HTTP模块构建Web应用程序服务器的程序将遇到:守护程序对所有HTTP请求头的组合大小限制为16384字节。这不包括POST方法表单数据,文件上传等,但它确实包含URL。实际上,当URL显著长于8000个字符时,这就导致了一个错误。这个限制可以很容易地去掉。寻找所有出现在Daemon.pm和16×1024用较大的值。当然,这会增加您对拒绝服务攻击的暴露。
值得注意的是,当href属性中提到的一篇文章,URL不能超过1024bytes,尚未详细研究。
总之,URL仍然不适合太长时间,没有必要尝试通过GET模式提交很多参数。它可以在后模式考虑(2m左右,这应该是对服务器和设置相关)。此外,这么长的URL是很不友好,当它来访问和收集。当然,你可能想考虑扩大数据库字段作为一个255bytes过程。