post和get區別對比

2021-09-29 04:11:07 字數 1194 閱讀 5475

post和get區別(標準答案):

get在瀏覽器回退時是無害的,而post會再次提交請求。

get產生的url位址可以被bookmark,而post不可以。

get請求會被瀏覽器主動cache,而post不會,除非手動設定。

get請求只能進行url編碼,而post支援多種編碼方式。

get請求引數會被完整保留在瀏覽器歷史記錄裡,而post中的引數不會被保留。

get請求在url中傳送的引數是有長度限制的,而post麼有。

對引數的資料型別,get只接受ascii字元,而post沒有限制。

get比post更不安全,因為引數直接暴露在url上,所以不能用來傳遞敏感資訊。

get引數通過url傳遞,post放在request body中。

http:超文字傳輸協議hyper text transport protocol

http的底層是tcp/ip。所以get和post的底層也是tcp/ip,也就是說,get/post都是tcp鏈結。get和post能做的事情是一樣一樣的。你要給get加上request body,給post帶上url引數,技術上是完全行的通的。 

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

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

長的說:

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

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

兩者安全性

post和get方式的安全性是相對的,另外也要看是從哪個角度來看的。從資料傳輸過程方面來看,post方式是更加安全的,但是從對伺服器資料的操作來看,post方式的安全性又是比較低的。即使是傳輸過程用post來執行,安全性也是相對的,如果了解http協議漏洞,通過攔截傳送的資料報,同樣可以修改互動資料,所以這裡的安全不是絕對的。

http/1.1 協議規定的 http 請求方法有 options、get、head、post、put、delete、trace、connect 這幾種

post 提交資料的幾種方式

multipart/form-data

text/xml

Get和Post的對比

用得最多的兩個,當然要做下對比啦!get 在請求的url位址後以?的形式帶上交給伺服器的資料,多個資料之間以 進行分隔,但資料容量通常不能超過2k,比如 http username pawd 這種就是get post 這個則可以在請求的實體內容中向伺服器傳送資料,傳輸沒有數量限制 另外要說一點,這兩...

axios 和 fetch 區別對比

axios axios then function response catch function error axios 是乙個基於promise 用於瀏覽器和 nodejs 的 http 客戶端,本質上也是對原生xhr的封裝,只不過它是promise的實現版本,符合最新的es規範,它本身具有以下...

libevent和libev的區別對比

兩個庫都是為非同步io排程而設計,在linux上都是使用epoll機制,在freebsd上則都是kqueue,還有諸如此類的很多相通之處。libev的誕生,是為了修復libevent設計上的一些錯誤決策。例如,全域性變數的使用,讓libevent很難在多執行緒環境中使用。watcher結構體很大,因...