HTTP協議中的請求方法
請求報文中方法的列表
方法 描述 是否包含主體
GET 從伺服器獲取一份文件 否
HEAD 只從伺服器獲取文件的首部 否
POST 向伺服器傳送需要處理的資料 是
PUT 將請求的主體部分儲存在伺服器上 是
TRACE 對可能經過代理伺服器傳送到伺服器上去的報文進行跟蹤 否
OPTIONS 決定可以在伺服器上執行哪些方法 否
DELETE 從伺服器上刪除一份文件 否
關於HTTP請求GET和POST的區別
從三個方面來進行講解
1.請求原理
GET提交,請求的資料會附在URL之後(就是把資料放置在HTTP協議頭<request-line>中),以?分割URL和傳輸資料,多個引數用&連線;例如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0 %E5%A5%BD。如果資料是英文字母/數字,原樣傳送,如果是空格,轉換為+,如果是中文/其他字元,則直接把字串用BASE64加密,得出如: %E4%BD%A0%E5%A5%BD,其中%XX中的XX為該符號以16進製表示的ASCII。
POST提交:把提交的資料放置在是HTTP包的包體<request-body>中。上文示例中紅色字型標明的就是實際的傳輸資料 因此,GET提交的資料會在位址列中顯示出來,而POST提交,位址列不會改變。
2.傳輸資料的大小
首先宣告,HTTP協議沒有對傳輸的資料大小進行限制,HTTP協議規範也沒有對URL長度進行限制。 而在實際開發中存在的限制主要有:
GET:特定瀏覽器和伺服器對URL長度有限制,例如IE對URL長度的限制是2083位元組(2K+35)。對於其他瀏覽器,如Netscape、FireFox等,理論上沒有長度限制,其限制取決於作業系統的支援。 因此對於GET提交時,傳輸資料就會受到URL長度的限制。
POST:由於不是通過URL傳值,理論上資料不受限。但實際各個WEB伺服器會規定對post提交資料大小進行限制,Apache、IIS6都有各自的配置。
3.安全性
POST的安全性要比GET的安全性高。
注意:這裡所說的安全性和上面GET提到的“安全”不是同個概念。上面“安全”的含義僅僅是不作資料修改,而這裡安全的含義是真正的Security的含義,比如:通過GET提交資料,使用者名稱和密碼將明文出現在URL上,因為(1)登入頁面有可能被瀏覽器快取, (2)其他人檢視瀏覽器的歷史紀錄,那麼別人就可以拿到你的賬號和密碼了。
轉載:https://www.cnblogs.com/chenguangliang/p/6708592.html