HTTP Methods的GET與POST request的區別如下。
GET
GET用來查詢資料。
GET屬於Safe Methods,也屬於Idempotent Methods。
GET不允許有message body。
GET夾帶的參數會附在URI後面,例如http://www.abc.com?id=A0001&page=12
GET的參數會存在瀏覽紀錄(browsing history)。
GET可以加入書籤(bookmark)。
GET的參數有長度限制,一般來說整個uri長度不應超過2048 characters (2KB),依瀏覽器及伺服器的規格決定。
GET不應用於傳輸機敏資料例如密碼,因為參數是直接附加在URL後面,任何人都看得到。
GET可以被cache。
菜鳥工程師-肉豬
POST
POST用來新增資料。
POST不屬於Safe Methods,也不屬於Idempotent Methods。
POST有message body
POST夾帶的參數不會附在URI後面,而是放在request body(message body)。
POST / HTTP/1.1
Host: http://www.abc.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 15
id=A0001&qty=12
POST的參數不會存在瀏覽紀錄
POST無法加入書籤,正確地說是可以加入書籤,但因為夾帶的參數不是附在uri後面,不會被儲存,所以加入書籤沒有意義。
POST的參數無長度限制。
POST用於傳輸機敏資料例如密碼,但儘管如此POST仍不是安全的,因為雖然參數不夾帶於URI後,但body的內容仍是以未加密的原始資料傳輸,應搭配HTTPS加密傳輸才比較安全。
POST不會被cache。
沒有留言:
張貼留言