get請求和post請求區別

一、概述
http請求方式有get、post、put、delete等多種,最常用的就是get和post
在這裏插入圖片描述

多種請求方式
二、區別:
1、GET請求一般用去請求獲取數據,

    POST一般作爲發送數據到後臺時使用

2、GET請求也可傳參到後臺,但是其參數在瀏覽器的地址欄的url中可見,所以隱私性安全性較差,且參數長度也是有限制的

    POST請求傳遞參數放在Request body中,不會在url中顯示,比GET要安全,且參數長度無限制

3、GET請求刷新瀏覽器或回退時沒有影響

    POST回退時會重新提交數據請求

4、GET 請求可被緩存

    POST 請求不會被緩存

5、GET 請求保留在瀏覽器歷史記錄中

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

6、GET 請求可被收藏爲書籤

    POST 不能被收藏爲書籤

7、GET請求只能進行url編碼(application/x-www-form-urlencoded)

    POST支持多種編碼方式(application/x-www-form-urlencoded 或 multipart/form-data。爲二進制數據使用多重編碼。)

8、GET請求比較常見的方式是通過url地址欄請求

    POST最常見是通過form表單發送數據請求

三、進一步理解
個人查了一些資料後的理解:

post請求和get請求都是HTTP的請求方式,本質上來說並無區別,底層實現都是基於TCP/IP協議。

但是請求有各種各樣的方式,於是HTTP對請求方式進行了劃分和規定,於是產生了get、post處理請求的分工和區別。

此外還有搜索到另外一個區別:GET產生一個TCP數據包;POST產生兩個TCP數據包。

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

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

  1. GET與POST都有自己的語義,不能隨便混用。

  2. 據研究,在網絡環境好的情況下,發一次包的時間和發兩次包的時間差別基本可以無視。而在網絡環境差的情況下,兩次包的TCP在驗證數據包完整性上,有非常大的優點。

  3. 並不是所有瀏覽器都會在POST中發送兩次包,Firefox就只發送一次。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章