关于get方式传递字符串的最大长度问题

以前一直以为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.phpechostrlen('http://'.$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING'])."
";
echostrlen($_GET['query']);
慕仙森
浏览 420回答 2
2回答

元芳怎么了

RFC2616(HypertextTransferProtocolHTTP/1.1)section3.2.1有以下描述:TheHTTPprotocoldoesnotplaceanyapriorilimitonthelengthofaURI.ServersMUSTbeabletohandletheURIofanyresourcetheyserve,andSHOULDbeabletohandleURIsofunboundedlengthiftheyprovideGET-basedformsthatcouldgeneratesuchURIs.AserverSHOULDreturn414(Request-URITooLong)statusifaURIislongerthantheservercanhandle(seesection10.4.15).Note:ServersoughttobecautiousaboutdependingonURIlengthsabove255bytes,becausesomeolderclientorproxyimplementationsmightnotproperlysupporttheselengths.也就是说协议本身并没有限制url最大长度,server可以按照自身能力尽可能处理最大长度,否则返回414错误。另外在apache配置url最大长度的方法如下:LimitRequestLine4094
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript