1. 程式人生 > >get和post方法到底有什麼區別

get和post方法到底有什麼區別

get 和post都是前後端互動的的方式

說起GET和POST的區別時,我們要先確定,這裡的GET和POST是基於什麼前提的

  • 如果沒有前提,也就是不用任何規範限制的話,我們只考慮語法來說,GET請求和POST請求都能拉取資料。這兩個方式是沒有任何區別的,只有名字不一樣。
  • 如果是基於RFC規範的(下面詳細說說)

a)    GET的資料在 URL 中對所有人都是可見的。POST的資料不會顯示在 URL 中。

b)    GET對資料長度有限制,當傳送資料時,GET 方法向 URL 新增資料;URL 的長度是受限制的(URL 的最大長度是 2048 個字元)。POST無限制。

c)     GET可收藏為書籤,POST不可收藏為書籤。

d)    GET後退按鈕/重新整理無影響,POST資料會被重新提交(瀏覽器應該告知使用者資料會被重新提交)。

e)    GET編碼型別application/x-www-form-url,POST編碼型別encodedapplication/x-www-form-urlencoded 或 multipart/form-data。為二進位制資料使用多重編碼。

f)     GET歷史引數會保留在瀏覽器歷史中。POST引數不會儲存在瀏覽器歷史中。

g)    GET只允許 ASCII 字元。POST沒有限制。也允許二進位制資料。

h)    與 POST 相比,GET 的安全性較差,因為所傳送的資料是 URL 的一部分。在傳送密碼或其他敏感資訊時絕不要使用 GET !POST 比 GET 更安全,因為引數不會被儲存在瀏覽器歷史或 web 伺服器日誌中。

i)     比如GET請求只會有一次TCP連線,而POST請求會有兩次TCP連線。

對於GET方式的請求,瀏覽器會把http header和data一併傳送出去,伺服器響應200(返回資料); 
而對於POST,瀏覽器先發送header,伺服器響應100 continue,瀏覽器再發送data,伺服器響應200 ok(返回資料)。

注:

RFC是一種網路規範

四種常見的 POST 提交資料方式:

1.application/x-www-form-urlencoded(表單預設方式)

2.multipart/form-data(表單上傳檔案)

3.application/json

4.text/xml

文章由小編查詢好多資料後創作,如有問題請聯絡我。