首頁 > 常見問題 > 主體

post和get請求的差別是什麼

青灯夜游
發布: 2023-02-03 11:23:10
原創
78543 人瀏覽過

區別:1、post請求更安全;post請求不會作為url的一部分,不會被快取、保存在伺服器日誌、以及瀏覽器瀏覽記錄中,get請求的是靜態資源,則會緩存,如果是數據,則不會緩存。 2.post請求發送的資料較大,get請求有url長度限制。 3.post請求能發送更多的資料類型,get請求只能發送ASCII字元。 4.傳參方式不同。 5.get產生一個TCP資料包;post產生兩個。

post和get請求的差別是什麼

本教學操作環境:windows10系統、Dell G3電腦。

get請求:從指定的資源請求數據,用於獲取數據,一般用於搜尋排序和篩選之類的操作。

post請求:向指定的資源提交要被處理的數據,用於將資料傳送給伺服器,一般用於修改和寫入資料。

get請求和post請求本質上就是TCP鏈接,並無差別。但是由於HTTP的規定和瀏覽器/伺服器的限制,導致他們在應用過程中體現出一些不同。

post請求和get請求的區別

(1)post請求更安全(不會作為url的一部分,不會被緩存、保存在伺服器日誌、以及瀏覽器瀏覽記錄中,get請求的是靜態資源,則會緩存,如果是數據,則不會緩存)

(2)post請求發送的數據更大( get請求有url長度限制,http協定本身不限制,請求長度限制是由瀏覽器和web伺服器決定和設定)

(3)post請求能發送更多的資料型別(get請求只能發送ASCII字元)

(4)傳參方式不同(get請求參數透過url傳遞,post請求放在request body中傳遞)

(5)get請求產生一個TCP封包;post請求產生兩個TCP封包(get請求,瀏覽器會把http header和data一併發送出去,伺服器回應200回傳資料;post請求,瀏覽器先發送header,伺服器回應100 continue,瀏覽器再傳送data,伺服器回應200 回傳資料)

注意:在發送POST 的時候都沒有帶Expect 頭,server 也自然不會發100 continue。

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回應

網路環境好的情況下,發送一次封包和發送兩次封包的時間差異基本上可以忽略。而在網路環境差的情況下,兩次封包的TCP在驗證封包完整性上,有非常大的優點。

更多相關知識,請造訪常見問題欄位!

以上是post和get請求的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板