您好,登錄后才能下訂單哦!
本篇內容介紹了“post和get請求的區別有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
區別:1、post請求更安全;post請求不會作為url的一部分,不會被緩存、保存在服務器日志、以及瀏覽器瀏覽記錄中,get請求的是靜態資源,則會緩存,如果是數據,則不會緩存。2、post請求發送的數據更大,get請求有url長度限制。3、post請求能發送更多的數據類型,get請求只能發送ASCII字符。4、傳參方式不同。5、get產生一個TCP數據包;post產生兩個。
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請求的區別有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。