今天在W3C看
$_GET
函數,上面寫的是限制在
100字元以內
,然後也有看到網友說是
2kb以下
,另外看到一種說法是$_GET方法
沒有長度限制
,因為它的可提交資料量與URL長度有關,而URL是沒有長度限制的
請問這個方法到底有沒有長度限制?有的話是多少?
回複內容:
今天在W3C看$_GET
函數,上面寫的是限制在100字元以內
,然後也有看到網友說是2kb以下
,另外看到一種說法是$_GET方法沒有長度限制
,因為它的可提交資料量與URL長度有關,而URL是沒有長度限制的
請問這個方法到底有沒有長度限制?有的話是多少?
HTTP協議從未規定GET/POST請求長度限制是多少。這個長度限制主要取決於瀏覽器和 網頁伺服器的決定和設定,各種瀏覽器和 網頁伺服器的設定均不一樣。
通常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為最大