1. 程式人生 > >http中post和get的區別

http中post和get的區別

GETPOSTHTTP協議中的兩種傳送請求的方法。

HTTP是基於TCP/IP的關於資料如何在全球資訊網中如何通訊的協議。

所以GETPOST的底層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 headerdata一併傳送出去,伺服器響應

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. GETPOST更不安全,因為引數直接暴露在URL上,所以不能用來傳遞敏感資訊。