今天在W3C看$_GET
函数,上面写的是限制在100字符以内
,然后也有看到网友说是2kb以下
,另外看到一种说法是$_GET方法没有长度限制
,因为它的可提交数据量与URL长度有关,而URL是没有长度限制的
请问这个方法到底有没有长度限制?有的话是多少?
今天在W3C看$_GET
函数,上面写的是限制在100字符以内
,然后也有看到网友说是2kb以下
,另外看到一种说法是$_GET方法没有长度限制
,因为它的可提交数据量与URL长度有关,而URL是没有长度限制的
请问这个方法到底有没有长度限制?有的话是多少?
HTTP协议从未规定GET/POST请求长度限制是多少。这个长度限制主要取决于浏览器和 web 服务器的决定和设置,各种浏览器和 web 服务器的设定均不一样。
通常webserver默认限制是8KB,不过你可以通过修改配置来更改。
浏览器这边 MSIE 和 Safari 最大值 2KB, Opera 4KB,Firefox 8KB。从应用跨浏览器的角度考虑,你应该选择最小的2KB。
我的印象中,很久以前,url的长度一般是1024字节上限,不同浏览器相差不大,不知道现在的情况了。
在http
协议中,其实并没有对url
长度作出限制,往往url的最大长度和用户浏览器有关,不一样的浏览器,能接受的最大长度往往是不一样的。
IE浏览器:2083
个字符
Firefox浏览器:65,536
个字符
Safari:80,000
个字符
Opera:190,000
个字符
Google:8182
个字符
另外,不一样的web服务器能接受url长度也会不一样。
我最近也遇到了楼主提的这问题,场景是在在保存某些信息的时候,提交表单的方式是用GET方法,然后报错了,显示超过服务器请求限制,原因是保存的信息太多,而GET方法会把数据全部显示在URL上。把方式改为POST后,问题就不存在了,百度了一下,说是URL的长度是受浏览器的限制的,不同浏览器会有不同的长度限制
sqrtqiezi说的是对的。
无论是post还是get必然都是有长度限制的,具体由服务器和浏览器之间设定的最小值决定。
get普遍以2k为最大