你可能輕輕鬆鬆的給出了乙個「標準答案」:
但這些都不是主要的區別。最直觀的區別就是get把引數包含在url中,post通過request body傳遞引數。
get和post本質上就是tcp鏈結,並無差別。但是由於http的規定和瀏覽器/伺服器的限制,導致他們在應用過程中體現出一些不同。
get和post還有乙個重大區別,簡單的說:
get產生乙個tcp資料報;post產生兩個tcp資料報。
總的來說:
對於get方式的請求,瀏覽器會把http header和data一併傳送出去,伺服器響應200(返回資料);
而對於post,瀏覽器先傳送header,伺服器響應100 continue,瀏覽器再傳送data,伺服器響應200 ok(返回資料)。
也就是說,get只需要汽車跑一趟就把貨送到了,而post得跑兩趟,第一趟,先去和伺服器打個招呼「嗨,我等下要送一批貨來,你們開啟門迎接我」,然後再回頭把貨送過去。
1. get與post都有自己的語義,不能隨便混用。
2. 據研究,在網路環境好的情況下,發一次包的時間和發兩次包的時間差別基本可以無視。而在網路環境差的情況下,兩次包的tcp在驗證資料報完整性上,有非常大的優點。
3. 並不是所有瀏覽器都會在post中傳送兩次包,firefox就只傳送一次。
GET和POST的真正區別
http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是get,post,put,delete。url全稱是資源描述符,我們可以這樣認為 乙個url位址,它用於描述乙個網路上的資源,而http中的get,post,put,delete就對應著對這個資源的 查,改,增,刪4個操作。到這裡,大家...
這才是GET和POST的真正區別
既然get和post是有關http請求的兩種方式,就先來看看http請求報文和響應報文的知識。超文字傳輸協議 hypertext transfer protocol,簡稱http 是應用層協議。http 是一種請求 響應式的協議,即乙個客戶端與伺服器建立連線後,向伺服器傳送乙個請求 伺服器接到請求後...
你真的了解GET和POST的真正區別嗎?
我們會經常看到有人問 http協議中get請求和post請求有什麼區別?很多同學都是一知半解,因為這個問題看起來似乎很簡單,但是不同程度的人會回答出不同的結果。今天就讓我們來深刻了解下http協議中get和post的真正區別。我們還是要用一句簡練的話來回答get和post的區別 提及get和post...