以前一直以为1024字节(即包括查询字符串在内的url总长度),今天听到有人说256字节...
自己测试了下,发现都不是
firefox,chrome,IE9下,允许的最大长度都为8193字节...
疑问:
这个值到底是依据什么而定的呢?根据我的测试结果,三种浏览器允许的最大长度都一致,这说明应该不是浏览器的问题,那是服务器的配置问题么?如果是的话,是什么配置项起的作用呢?
下面是测试用的代码:
urllenchk.php
$url = 'http://localhost/lab/urllen.php?query=';
$queryString = str_repeat('a', 8192-strlen($url)+1);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url.$queryString);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_exec($curl);
urllen.php
echo strlen('http://'.$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING'])."<br />";
echo strlen($_GET['query']);
RFC 2616 (Hypertext Transfer Protocol HTTP/1.1) section 3.2.1有以下描述:
也就是说协议本身并没有限制url最大长度,server可以按照自身能力尽可能处理最大长度,否则返回414错误。
另外在apache配置url最大长度的方法如下:LimitRequestLine 4094
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。