关于URL的长度

摘录一:

看见很多朋友讨论浏览器最大URL长度限制的问题。其实实际中URL长度限制是由2方面决定的。1 客户浏览器 2 接受服务请求的服务器端的设置。对于大多数用户来说,他们使用的浏览器是IE浏览器,IE的最大URL长度限制是2083字节,而实际可以使用的最大长度为2048字节。
 
以下是微软方面的技术资料及翻译:
 
Maximum URL length is 2,083 characters in Internet Explorer
在IE中URL最大长度是2083字节
 
SUMMARY
摘要
Microsoft Internet Explorer has a maximum uniform resource locator (URL) length of 2,083 characters.
微软 Internet Explorer 限制最大统 一资源定位器 (URL) 长度为2083字节。
 
Internet Explorer also has a maximum path length of 2,048 characters. This limit applies to both POST
request and GET request URLs.
Internet Explorer 对最大请求路径长度也进行了限制,限制长度为2048字节。这个限制对 POST 请求和 GET 请求的URL均适用。

If you are using the GET method, you are limited to a maximum of 2,048 characters, minus the number of characters in the actual path.
如果您使用GET方法,您将受到最大2048字节的长度限制,减去实际路径中的字符数。
(注:实际可以使用的字符串长度=2048-请求页面路径字符长度)
 
However, the POST method is not limited by the size of the URL for submitting name/value pairs. These pairs are transferred in the header and not in the URL.
但是, POST 方法提交名称 / 值对不受 URL 长度的大小的限制。 因为这些名 / 值对是在请求中的header部分传输的,而不在URL中。

RFC 2616, "Hypertext Transfer Protocol -- HTTP/1.1," does not specify any requirement for URL length.
RFC 2616、 " 超文本传输协议 -- HTTP /1.1, " 未指定任何对 URL 长度要求。
 
由此文大家可以知道,实际在IE中可以使用的最大URL长度是2048字节减去您请求页面的路径长度。另外这个长度还受到服务端相应软件的限制。


摘录二:

HTTP GET请求的URL长度限制受客户端浏览器和服务器两方面的限制:

由于环境所限,我客户端ie7,服务器apache2.2.11。

<?php
$i=1000;
do{
    $i+=1000;
    $url = str_pad("http://localhost/?",$i,'x');
}while(file_get_contents($url));
echo $i;
?>
发现9000的时候终止了。
<?php
$i=8000;
do{
    $i+=100;
    $url = str_pad("http://localhost/?",$i,'x');
}while(file_get_contents($url));
echo $i;
?>
发现8200的时候终止了。
<?php
$i=8100;
do{
    $i+=10;
    $url = str_pad("http://localhost/?",$i,'x');
}while(file_get_contents($url));
echo $i;
?>
发现8200的时候终止了。
<?php
$i=8190;
do{
    $i++;
    $url = str_pad("http://localhost/?",$i,'x');
}while(file_get_contents($url));
echo $i;
?>
发现8194的时候终止了。

服务器支持8k多一点。
ie经过测试,支持2k。

 

摘录三:

微软官方http://support.microsoft.com/default.aspx?scid=kb;EN-US;q208427

Microsoft Internet Explorer has a maximum uniform resource locator (URL) length of 2,083 characters. Internet Explorer also has a maximum path length of 2,048 characters. This limit applies to both POST request and GET request URLs.


If you are using the GET method, you are limited to a maximum of 2,048 characters, minus the number of characters in the actual path.


However, the POST method is not limited by the size of the URL for submitting name/value pairs. These pairs are transferred in the header and not in the URL.


RFC 2616, "Hypertext Transfer Protocol -- HTTP/1.1," does not specify any requirement for URL length. 

你可能感兴趣的:(PHP,浏览器,IE,Microsoft,软件测试)