1. 程式人生 > >HTTP中的GET和POST方法有什麼區別(詳細易懂,不看後悔,一看必懂)

HTTP中的GET和POST方法有什麼區別(詳細易懂,不看後悔,一看必懂)

HTTP協議中定義了瀏覽器和伺服器進行互動的不同方法,基本方法有4種,分別是GET,POST,PUT,DELETE。這四種方法可以理解為,對伺服器資源的查,改,增,刪。但是,現在大家都不這麼幹了! 只用一個方式就可以做增刪查減的操作。 
GET:從伺服器上獲取資料,也就是所謂的查,僅僅是獲取伺服器資源,不進行修改。
POST:向伺服器提交資料,這就涉及到了資料的更新,也就是更改伺服器的資料。
PUT:PUT的英文含義是放置,也就是向伺服器新新增資料,就是所謂的增。
DELETE:從字面意思也能看出,這種方式就是刪除伺服器資料的過程。

get和post的區別

①get會把引數放在url的後面 post不會,所以post安全性更好一點

②get引數大小有限制(通常在2kb左右),post請求卻沒有限制

( 1)http協議並未規定get和post的長度限制 
(2)get的最大長度限制是因為瀏覽器和web伺服器限制了URL的長度 
(3)不同的瀏覽器和web伺服器,限制的最大長度不一樣 

③get請求沒有請求體;post請求有請求體 請求引數放在請求體中

一般使用post上傳資料

④GET在瀏覽器回退時是無害的,而POST會再次提交請求

⑤GET請求會被瀏覽器主動cache,而POST不會,除非手動設定。

⑥GET請求只能進行url編碼,而POST支援多種編碼方式。

⑦GET請求引數會被完整保留在瀏覽器歷史記錄裡,而POST中的引數不會被保留。

⑧GET只接受ASCII字元的引數的資料型別,而POST沒有限制

⑨get請求比post要快

為什麼呢?

HTTP的底層是TCP/IP。所以GET和POST的底層也是TCP/IP,也就是說,GET/POST都是TCP連結GET產生一個TCP資料包;POST產生兩個TCP資料包。(對於GET方式的請求,瀏覽器會把http header和data一併傳送出去,伺服器響應200(返回資料);而對於POST,瀏覽器先發送header,伺服器響應100 continue,瀏覽器再發送data,伺服器響應200 ok(返回資料))