HTTP中GET與POST的區別

2021-09-16 18:35:07 字數 724 閱讀 3588

get和post是http請求的兩種基本方法,要說它們的區別,接觸過web開發的人都能說出一二。最直觀的區別就是get把引數包含在url中,post通過request body傳遞引數。

http的底層是tcp/ip。所以get和post的底層也是tcp/ip,也就是說,get/post都是tcp鏈結。

get和post還有乙個重大區別,簡單的說:

get產生乙個tcp資料報;post產生兩個tcp資料報。

長的說:

對於get方式的請求,瀏覽器會把http header和data一併傳送出去,伺服器響應200(返回資料);

而對於post,瀏覽器先傳送header,伺服器響應100 continue,瀏覽器再傳送data,伺服器響應200 ok(返回資料)。

也就是說,get只需要汽車跑一趟就把貨送到了,而post得跑兩趟,第一趟,先去和伺服器打個招呼「嗨,我等下要送一批貨來,你們開啟門迎接我」,然後再回頭把貨送過去。

因為post需要兩步,時間上消耗的要多一點,看起來get比post更有效。因此yahoo團隊有推薦用get替換post來優化**效能。但這是乙個坑!跳入需謹慎。為什麼?

get與post都有自己的語義,不能隨便混用。

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

並不是所有瀏覽器都會在post中傳送兩次包,firefox就只傳送一次。

HTTP中的get與post方法相同與區別

兩種最常用的 http 方法是 get 和 post。超文字傳輸協議 http 的設計目的是保證客戶端與伺服器之間的通訊。http 的工作方式是客戶端與伺服器之間的請求 應答協議。web 瀏覽器可能是客戶端,而計算機上的網路應用程式也可能作為伺服器端。舉例 客戶端 瀏覽器 向伺服器提交 http 請...

http中get與post區別

http有兩部分組成 請求與響應,下面分別整理。在http請求中,第一行必須是乙個請求行 request line 用來說明請求型別 要訪問的 資源以及使用的http版本。緊接著是乙個首部 header 小節,用來說明伺服器要使用的附加資訊。在首部之後是乙個空行,再此之後可以新增任意的其他資料 稱之...

Http方法 Get請求與Post請求的區別

http方法 get請求與post請求的區別 get是向伺服器發索取資料的一種請求,而post是向伺服器提交資料的一種請求 get是獲取資訊,而不是修改資訊,類似資料庫查詢功能一樣,資料不會被修改 get請求的引數會跟在url後進行傳遞,請求的資料會附在url之後,以?分割url和傳輸資料,引數之間...