­

兩種HTTP請求方法:GET和POST的區別

  • 2019 年 10 月 6 日
  • 筆記

之前在一些開發者平台使用網頁調用API時,一再提到兩種請求方法GET和POST,所以就去了解了下。那麼這又不得不提到HTTP了!

一、什麼是 HTTP?

超文本傳輸協議(HTTP)的設計目的是保證客戶機與伺服器之間的通訊。HTTP 的工作方式是客戶機與伺服器之間的請求-應答協議。web 瀏覽器可能是客戶端,而電腦上的網路應用程式也可能作為伺服器端。

二、兩種 HTTP 請求方法:GET 和 POST

在客戶機和伺服器之間進行請求-響應時,兩種最常被用到的方法是:GET 和 POST。

1、GET 方法:從指定的資源請求數據。

請注意,查詢字元串(名稱/值對)是在 GET 請求的 URL 中發送的:

例如:https://www.xxxx.com/xxx.asp? name1=value1&name2=value2

而需要注意的是:GET方法是可見的,而POST方法是在HTTP消息主體中發出的,具有不可見性。下面是一些GET的注釋:

1.1.GET 請求可被快取。

1.2.GET 請求保留在瀏覽器歷史記錄中。

1.3.GET 請求可被收藏為書籤。

1.4.GET 請求不應在處理敏感數據時使用

1.5.GET 請求有長度限制

1.6.GET 請求只應當用於取回數據

2、POST 方法:向指定的資源提交要被處理的數據

請注意,查詢字元串(名稱/值對)是在 POST 請求的 HTTP 消息主體中發送的:

GET方法是可見的,而POST方法是在HTTP消息主體中發出的,具有不可見性。下面是一些 POST的注釋:

2.1.POST 請求不會被快取

2.2.POST 請求不會保留在瀏覽器歷史記錄中

2.3.POST 不能被收藏為書籤

2.4.POST 請求對數據長度沒有要求

三、比較 GET 與 POST

下面比較了兩種 HTTP 方法:GET 和 POST。

1.後退按鈕/刷新:

GET—>無害。

POST—>數據會被重新提交(瀏覽器應該告知用戶數據會被重新提交)。

2.書籤:

GET—> 可收藏為書籤。

POST—>不可收藏為書籤。

3.快取:

GET—>能被快取。

POST—>不能快取 。

4.編碼類型:

GET—>application/x-www-form-urlencoded 。

POST—>application/x-www-form-urlencoded 或 multipart/form-data。為二進位數據使用多重編碼。

5.歷史:

GET—>參數保留在瀏覽器歷史中。

POST—> 參數不會保存在瀏覽器歷史中。

6.對數據長度的限制:

GET—-> 是的。當發送數據時,GET 方法向 URL 添加數據;URL 的長度是受限制的(URL 的最大長度是 2048 個字元)。

POST—> 無限制。

7.對數據類型的限制:

GET—->只允許 ASCII 字元。

POST—> 沒有限制。也允許二進位數據。

8.安全性:

GET—-> 與 POST 相比,GET 的安全性較差,因為所發送的數據是 URL 的一部分。在發送密碼或其他敏感資訊時絕不要使用 GET !

POST—> POST 比 GET 更安全,因為參數不會被保存在瀏覽器歷史或 web 伺服器日誌中。

9.可見性:

GET—>數據在 URL 中對所有人都是可見的。

POST—> 數據不會顯示在 URL 中。

對於GET方式的請求,瀏覽器會把http header和data一併發送出去,伺服器響應200(返回數據);

而對於POST,瀏覽器先發送header,伺服器響應100 continue,瀏覽器再發送data,伺服器響應200 ok(返回數據)。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援。

來源:https://blog.csdn.net/qq_34490018/article/details/79650794