为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕仙森 2019-04-06 08:31:30
以前一直以为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有以下描述:TheHTTPprotocoldoesnotplaceanyapriorilimitonthelengthof
aURI.ServersMUSTbeabletohandletheURIofanyresourcetheyserve,andSHOULDbeabletohandleURIsofunboundedlengthiftheyprovideGET-basedformsthatcouldgeneratesuchURIs.AserverSHOULDreturn414(Request-URITooLong)statusifaURIislongerthantheservercanhandle(seesection10.4.15).Note:ServersoughttobecautiousaboutdependingonURIlengthsabove255bytes,becausesomeolderclientorproxyimplementationsmightnotproperlysupporttheselengths.也就是说协议本身并没有限制url最大长度,server可以按照自身能力尽可能处理最大长度,否则返回414错误。
另外在apache配置url最大长度的方法如下:
LimitRequestLine4094
                            
查看完整回答
反对 回复 2019-04-06
  • 2 回答
  • 0 关注
  • 419 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信