1. 程式人生 > >HTTP協議中的請求方法

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