Get請求和Post請求的區別

今天從以下五個角度分析在這裏插入圖片描述

來自愛寫思維導圖的辰兮同學


1)請求形式在這裏插入圖片描述


①Get舉例子來說吧:

url : “http://www.imooc.com?a=1&b=2&c=3” 這個地址,問號之後的稱爲參數。我們可以看出:有3個參數,a,b,c.它們的值分別是1,2,3你已經想到了,&就是“和”的意思。我們不經常也這麼說:“我&你”

參數是傳給後臺取值的,?是解析的時候開始點,&是連接參數的符號

總結:URL結構:協議://域名 or IP地址:端口號/目錄/文件名.文件名後綴?參數=值

②Post請求

Post請求包含兩部分:請求頭(header)和請求體(body)。
詳細具體可查 post如何傳輸數據


2)傳輸數據的大小

①GET請求:

在HTTP規範中,沒有對URL的長度和傳輸的數據大小進行限制。但是在實際開發過程中,對於GET,特定的瀏覽器和服務器對URL的長度有限制。因此,在使用GET請求時,傳輸數據會受到URL長度的限制,一般傳送的數據量不超過2KB

②POST請求

由於不是URL傳值,理論上是不會受限制的,但是實際上各個服務器會規定對POST提交數據大小進行限制,Apache、IIS都有各自的配置。

總結:GET的URL會有長度上的限制,則POST的數據則可以非常大。


3)安全性

在這裏插入圖片描述

①GET請求:

傳輸的參數安全性低,因爲傳輸的數據會顯示在URL中,所有人都是可見的,並且會被緩存和保留在瀏覽器歷史中

②POST請求

數據存放在請求包中進行傳輸,不會顯示在 URL 中,並且參數不會被緩存和保存在瀏覽器歷史或 web 服務器日誌中

總結:POST比GET安全


4)傳輸數據的類型

①GET請求:

只允許 ASCII 字符
在這裏插入圖片描述

②POST請求

支持多種數據類型


5)對服務器的影響

①GET請求:

從服務器上獲取數據,也就是所謂的查,僅僅是獲取服務器資源,不進行修改。

②POST請求

向服務器提交數據,這就涉及到了數據的更新,也就是更改服務器的數據。


thanks for your reading


既然post有這麼多優點,那我們爲什麼要使用get?

因爲get比post更快

1)post請求的過程,會先將請求頭髮送給服務器進行確認,然後才真正發送數據;而get請求的過程,會在連接建立後會將請求頭和請求數據一起發送

2)get會將數據緩存起來,而post不會

可以做個簡短的測試,使用ajax採用get方式請求靜態數據(比如html頁面,圖片)的時候,如果兩次傳輸的數據相同,第二次以後耗費的時間將在10ms以內(chrome測試),而post每次耗費的時間都差不多

3)post不能進行管道化傳輸

所以具體的使用根據實際情況而定,使用get請求通信的時候這樣用戶體驗會更好,當然,如果有安全性要求的話,post會更好。

在這裏插入圖片描述

study hard and make progress every day

2020.02.21 ~

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