开发者社区> 问答> 正文

请教各位关于php中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.php

echo strlen('http://'.$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING'])."<br />";
echo strlen($_GET['query']);

展开
收起
落地花开啦 2016-06-12 17:54:20 3106 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    RFC 2616 (Hypertext Transfer Protocol HTTP/1.1) section 3.2.1有以下描述:
    screenshot
    也就是说协议本身并没有限制url最大长度,server可以按照自身能力尽可能处理最大长度,否则返回414错误。
    另外在apache配置url最大长度的方法如下:
    LimitRequestLine 4094

    2019-07-17 19:34:49
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP安全开发:从白帽角度做安全 立即下载
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载