URL长度限制
1、HTTP协议不对URI的长度作事先的限制,服务器必须能够处理任何他们提供资源的URI,并且应该能够处理无限长度的URIs,这种无效长度的URL可能会在客户端以基于GET方式的请求时产生。如果服务器不能处理太长的URI的时候,服务器应该返回414状态码(此状态码代表Request-URI太长)。
2、虽然协议中未明确对url进行长度限制,但在真正实现中,url的长度还是受到限制的,一是服务器端的限制,二就是游览器端的限制。
3、经过一番搜索之后,发现IIS 7对于Query String有长度限制(Apache能接受最大url长度为8,192个字符)。默认为2048.该问题的解决办法可以通过修改configuration/system.webServer/security/requestFiltering/requestLimits@maxQueryString setting <requestLimits maxQueryString="length" />
IE7及以下:浏览器对URL的最大限制为2083个字符
safari:URL最大长度限制为 80,000个字符。
opera:URL最大长度限制为190,000个字符。
google:url长度一旦超过8182个字符时。
以上数据均来自网络毕竟WEB宿主的类型及版本不同可能导致不同,浏览器版本不同可能导致不同,一般情况使用时,不必担心URL长度的限制,但如果URL过长IIS配置修改,主流浏览器应验证。
通过上面的数据可知,为了让所有的用户都能正常浏览,我们的URL最好不要超过IE的最大长度限制(2038个字符),当然,如果URL不直接提供给用户,而是提供给程序调用,侧这时的长度就只受Web服务器影响了。
可能有些朋友会想当然的认为,如果最大长度限制为2083字符,是不是参数差不多可以传递1000个左右的汉字。这样认为其实是不对的,对于中文的传递,最终会为urlencode后的编码形式进行传递,如果浏览器的编码为UTF8的话,一个汉字最终编码后的字符长度为9个字符。
浙公网安备 33010602011771号