1. 程式人生 > >GET POST方法長度限制

GET POST方法長度限制

 

1.    Get方法長度限制

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最大長度減去實際路徑中的字元數。

2.    POST方法長度限制

理論上講,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的大小限制)