PHP的 get 和 post 的差別?
1、get是從伺服器上取得數據,post是傳送資料到伺服器;
#2、get傳送的資料不能大於2KB,而post傳送的資料是沒有大小限制;
3、get安全性非常低,post安全性較高。
推薦文章:PHP
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最大長度減去實際路徑中的字元數。
POST方法長度限制
理論上講,POST是沒有大小限制的。 HTTP協定規格也沒有進行大小限制,起限製作用的是伺服器的處理程序的處理能力。
如:在Tomcat下取消POST大小的限制(Tomcat預設2M);
#開啟tomcat目錄下的conf目錄,開啟server.xml 文件,修改maxPostSize="0" (設為0是取消POST的大小限制)
另外HTTP 協定從未規定GET/POST 的請求長度限制是多少。
日常我們所說的請求長度限制是由瀏覽器和web 伺服器決定和設定的,各種瀏覽器和web 伺服器的設定均不一樣,這依賴於各個瀏覽器廠商的規定或者可以根據web 伺服器的處理能力來設定。
相關推薦:《PHP的HTTP協定影片教學》
以上是PHP的 get 和 post 的差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!