天天看點

Get/POST方法送出的長度限制 1.    Get方法長度限制 2.    POST方法長度限制



http get方法送出的資料大小長度并沒有限制,http協定規範沒有對url長度進行限制。這個限制是特定的浏覽器及伺服器對它的限制。

如:ie對url長度的限制是2083位元組(2k+35)。

下面就是對各種浏覽器和伺服器的最大處理能力做一些說明.

microsoft internet explorer (browser)

ie浏覽器對url的最大限制為2083個字元,如果超過這個數字,送出按鈕沒有任何反應。

firefox (browser)

對于firefox浏覽器url的長度限制為65,536個字元。

safari (browser)

url最大長度限制為 80,000個字元。

opera (browser)

url最大長度限制為190,000個字元。

google (chrome)

url最大長度限制為8182個字元。

apache (server)

能接受最大url長度為8,192個字元。

microsoft internet information server(iis)

能接受最大url的長度為16,384個字元。

通過上面的資料可知,為了讓所有的使用者都能正常浏覽, url最好不要超過ie的最大長度限制(2083個字元),當然,如果url不直接提供給使用者,而是提供給程式調用,這時的長度就隻受web伺服器影響了。

注:對于中文的傳遞,最終會為urlencode後的編碼形式進行傳遞,如果浏覽器的編碼為utf8的話,一個漢字最終編碼後的字元長度為9個字元。

是以如果使用的 get 方法,最大長度等于url最大長度減去實際路徑中的字元數。

理論上講,post是沒有大小限制的。http協定規範也沒有進行大小限制,起限制作用的是伺服器的處理程式的處理能力。

如:在tomcat下取消post大小的限制(tomcat預設2m);

打開tomcat目錄下的conf目錄,打開server.xml 檔案,修改

<connector

debug="0"

acceptcount="100"

connectiontimeout="20000"

disableuploadtimeout="true"

port="8080"

redirectport="8443"

enablelookups="false"

minsparethreads="25"

maxsparethreads="75"

maxthreads="150"

maxpostsize="0"

uriencoding="gbk"

> 

</connector>

增加紅色字型部分 maxpostsize="0" (設為0是取消post的大小限制)