兩種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