get與post的恩怨情仇

2021-09-24 20:30:47 字數 704 閱讀 6243

get和post沒有本質上的區別,都是屬於http請求協議,但硬要說它們之間的區別,暫時概括了以下兩點:

1.get請求的headers中沒有content-type這個字段,post 的 content-type 有兩種 :

這種就是一般的文字表單用post傳遞資料,只要將得到的data用querystring解析下就可以了

multipart/form-data

檔案表單的傳輸

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

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

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

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

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

然後還有一些官方w3cschool給出的標準答案:

看到這裡,如果有面試官問到這個問題時,心裡估計會這樣想了吧:

與 equals 的恩怨情仇

基本資料型別不用通過new關鍵字來建立變數,直接儲存 值 並置於堆疊中,更加高效。如 boolean char byte short int long float double void。引用資料型別通過new關鍵字來完成建立。如 string,integer 比較的是物件的引用。equals 適用...

jq與js的恩怨情仇

var is selected new array var obj is selected obj.each function e,v var obj is selected obj.each function e,v function setval inum var aform document....

vscode與docker的恩怨情仇

背景 docker伺服器將docker容器根目錄掛著載乙個固態硬碟a上 安裝軟體 將工作區 存放平時的檔案 掛著載硬碟b上。硬碟a快但是容量小,限制每個容器使用500m 硬碟b容量大且速度夠用,限制每個容器使用好多g。問題1 使用vscode去遠端編輯 vscode將執行程式安裝在 root vsc...