Http中GET和POST的區別
1:
GET請求的資料會附在URL之後(就是把資料放置在HTTP協議頭中),以?分割URL和傳輸資料,引數之間以&相連。
POST把提交的資料則放置在是HTTP包的包體中。
2:
GET是通過URL提交資料,那麼GET可提交的資料量就跟URL的長度有直接關係了,URL不存在引數上限的問題,HTTP協議規範沒有對URL長度進行限制。這個限制是特定的瀏覽器及伺服器對它的限制。IE對URL長度的限制是2083位元組(2K+35)。對於其他瀏覽器,如Netscape、FireFox等,理論上沒有長度限制,其限制取決於作業系統的支援。
POST是沒有大小限制的,HTTP協議規範也沒有進行大小限制,POST資料是沒有限制的,起限制作用的是伺服器的處理程式的處理能力。
3:
在ASP中,服務端獲取GET請求引數用Request.QueryString,獲取POST請求引數用Request.Form
在PHP中,可以用$_GET和$_POST分別獲取GET和POST中的資料,而$_REQUEST則可以獲取GET和POST兩種請求中的資料
在JSP中,用request.getParameter(\"XXXX\")來獲取
4:
POST的安全性要比GET的安全性高。注意:這裡所說的安全性和上面GET提到的“安全”不是同個概念。上面“安全”的含義僅僅是不作資料修改,而這裡安全的含義是真正的Security的含義,比如:通過GET提交資料,使用者名稱和密碼將明文出現在URL上,因為(1)登入頁面有可能被瀏覽器快取,(2)其他人檢視瀏覽器的歷史紀錄,那麼別人就可以拿到你的賬號和密碼了,除此之外,使用GET提交資料還可能會造成Cross-site request forgery攻擊。