色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

get和post請求的區別及優缺點

錢衛國2年前17瀏覽0評論

get和post請求的區別及優缺點?

首先GET和POST是HTTP請求的兩種基本方法,要說它們的區別,接觸過WEB開發的人都能說出一二。

一般來說,我們會從三個點回答

1、GET把參數包含在URL中,POST通過request body傳遞參數。所以相比GET,POST要更加安全

2、數據庫層面GET具有冪等性和安全性,POST不符合

3、其他層面:GET可以被緩存、被存儲,而POST不行

但是很可惜,這不是面試官想要的答案?來吧,solo一波把。真正想要的回答是個啥玩意。

回歸本質,其實GET和POST是HTTP協議中的兩種發送請求的方法。

那么HTTP是什么?

HTTP是基于tcp/IP的關于數據如何在萬維網中如何通信的協議。

HTTP的底層是TCP/IP。所以GET和POST的底層也是TCP/IP,也就是說,GET/POST都是TCP鏈接。GET和POST能做的事情是一樣一樣的。你要給GET加上request body,給POST帶上url參數,技術上是完全行的通的。

那么,“標準答案”里的那些區別是怎么回事?

GET和POST本質上就是TCP鏈接,并無差別。但是由于HTTP的規定和瀏覽器/服務器的限制,導致他們在應用過程中體現出一些不同。 GET和POST的重大區別,簡單的說:

GET產生一個TCP數據包;POST產生兩個TCP數據包。詳細來說見如下過程:

post請求的過程:

(1)瀏覽器請求tcp連接(第一次握手)

(2)服務器答應進行tcp連接(第二次握手)

(3)瀏覽器確認,并發送post請求頭(第三次握手,這個報文比較小,所以http會在此時進行第一次數據發送)

(4)服務器返回100 Continue響應

(5)瀏覽器發送數據

(6)服務器返回200 OK響應

get請求的過程:

(1)瀏覽器請求tcp連接(第一次握手)

(2)服務器答應進行tcp連接(第二次握手)

(3)瀏覽器確認,并發送get請求頭和數據(第三次握手,這個報文比較小,所以http會在此時進行第一次數據發送)

(4)服務器返回200 OK響應

也就是說,目測get的總耗是post的2/3左右,這個口說無憑,網上已經有網友進行過測試。

所以這才是GET比POST更快的根本原因,但是再網速情況好的時候可以忽略不記,但是差的時候就可以體現出來了。

那么回答的標準答案可以怎么說呢:

(1)post更安全(不會作為url的一部分,不會被緩存、保存在服務器日志、以及瀏覽器瀏覽記錄中)

(2)post發送的數據更大(get有url長度限制)

(3)post能發送更多的數據類型(get只能發送ASCII字符)

(4)post比get慢,get和post請求的過程中GET產生一個TCP數據包;POST產生兩個TCP數據包。

(5)post用于修改和寫入數據,get一般用于搜索排序和篩選之類的操作(淘寶,支付寶的搜索查詢都是get提交),目的是資源的獲取,讀取數據,而post用來提交數據。所以GET具有冪等性和安全性,POST不符合

java post傳輸,get和post請求的區別及優缺點