http中post和get的區別
阿新 • • 發佈:2019-02-03
GET和POST是HTTP協議中的兩種傳送請求的方法。
HTTP是基於TCP/IP的關於資料如何在全球資訊網中如何通訊的協議。
所以GET和POST的底層都是TCP/IP,也就是說,GET/POST都是TCP連結
常用區別:
1. GET把引數包含在URL中,POST通過request body傳遞引數
2. GET請求在URL中傳送的引數是有長度限制的,POST沒有。
3. GET請求只能進行url編碼,而POST支援多種編碼方式
最重要的區別:
GET產生一個TCP資料包;POST產生兩個TCP資料包。(firefox瀏覽器除外)
對於GET方式的請求,瀏覽器會把http header和data一併傳送出去,伺服器響應 200(返回資料);
而對於POST,瀏覽器先發送header,伺服器響應100 continue,瀏覽器再發送data,伺服器響應200 ok(返回資料)。
其他的區別:
1. GET在瀏覽器回退時是無害的,而POST會再次提交請求。
2. GET產生的URL地址可以被Bookmark,而POST不可以。
3. GET請求會被瀏覽器主動cache,而POST不會,除非手動設定。
4. GET請求引數會被完整保留在瀏覽器歷史記錄裡,而POST中的引數不會被保留。
5. 對引數的資料型別,GET只接受ASCII字元,而POST沒有限制。
6. GET比POST更不安全,因為引數直接暴露在URL上,所以不能用來傳遞敏感資訊。