Home >Backend Development >PHP Tutorial >PHP中$_GET方法到底有没有长度限制?

PHP中$_GET方法到底有没有长度限制?

WBOY
WBOYOriginal
2016-06-06 20:14:381687browse

今天在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为最大

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn