1. 程式人生 > 其它 >GET請求和POST請求方法的區別

GET請求和POST請求方法的區別

1.本質上沒差別,都是TCP連線。只不過因為HTTP的規定和瀏覽器/伺服器的限制和人們日常開發中的約定俗成,導致他們在應用過程中體現出一些不同。get獲取資源,post傳輸資源。

2.get產生一個TCP資料包將http header和data一起傳送,post產生兩個資料包將http header和data分開發送,說到底協議是協議,遵不遵守就是開發者的事情。

3.GET請求引數通過URL傳遞,POST放在Request body中。通過這個差別只需要對url和request body做分析即可。url回退安全,引數相對來說更容易暴露,資料型別只接受ASCII(空格

是%20),url有長度限制(http1.1協議沒限制,瀏覽器有限制),儲存在瀏覽器歷史,預設被瀏覽器Cache。

語義上的區別:
GET - 獲取指定資源,安全、冪等、可快取。
POST - 根據請求對指定資源做處理,不安全、不冪等、大多數瀏覽器中不可快取。


表現上的區別:
GET - 引數暴露、長度限制。
POST - 引數不暴露、長度無限制。
但長度限制並不是出自HTTP協議的規定,而是因為瀏覽器對URL有長度限制。