以前一直以为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']);
2 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
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
添加回答
举报
0/150
提交
取消