網頁

2019/2/6

HTTP Methods GET與POST的區別

HTTP Methods的GETPOST 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。


沒有留言:

張貼留言