首頁 >後端開發 >php教程 >PHP中$_GET方法到底有没有长度限制?

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

WBOY
WBOY原創
2016-06-06 20:14:381697瀏覽

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn