Http的Get請求和Post請求的區別.md
阿新 • • 發佈:2018-12-10
1 Http的Get請求和Post請求的區別
-
get是從伺服器獲取資料,post是傳送資料到伺服器。
-
get引數通過URL傳遞,post引數放在Request body中。 所以:get比post更不安全,因為引數直接暴露在URL上,所以不能用來傳遞敏感資訊。 所以:get的url可以存為書籤,post的url不可以存為書籤。
-
GET請求在URL中傳送的引數是有長度限制的,而POST沒有。
-
對引數的資料型別,GET只接受ASCII字元,而POST沒有限制。
-
GET請求引數會被完整保留在瀏覽器歷史記錄裡,而POST中的引數不會被保留。
-
GET請求會被瀏覽器主動cache,而POST不會,除非手動設定。
-
GET在瀏覽器回退時是無害的,而POST會再次提交請求。
-
GET產生一個TCP資料包;POST產生兩個TCP資料包。(在Firefox中post只發送一個) 解釋:對於GET方式的請求,瀏覽器會把http header和data一併傳送出去,伺服器響應200(返回資料);
對於POST,瀏覽器先發送header,伺服器響應100 continue,瀏覽器再發送data,伺服器響應200 ok(返回資料)。
GET | POST | |
資料傳送方式 | 從伺服器獲取資料 | 傳送資料到伺服器 |
引數傳遞方式 | 通過URL傳遞 | 放在Request body中 |
可否存為書籤 | 可以 | 不可以 |
安全性 | 不安全 | 安全 |
URL中引數長度 | 有限制 | 沒限制 |
對引數的資料型別 | 只接受ASCII字元 | 沒有限制 |
引數儲存在瀏覽器歷史記錄? | 保留 | 不保留 |
瀏覽器主動cache | 會 | 不會 |
後退按鈕/重新整理 | 無害 | 資料會被重新提交(瀏覽器應該告知使用者資料會被重新提交)。 |
資料包個數 | 1個 | 2個(Firefox除外) |