HTTP請求中的GET和POST

2021-09-11 10:53:53 字數 953 閱讀 5825

首先,get和post都是http請求的兩種方式,最直接的區別呢就是----get把引數包含在url中,post通過request body傳遞引數。

然而面試的時候問到這個問題的時候你總是自信滿滿,輕而易舉的給出答案:

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

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

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

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

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

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

get和post是http協議中的兩種傳送請求的方法。http是基於tcp/ip的關於資料通訊的協議。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得跑兩趟,第一趟,先去和伺服器打個招呼「嗨,我等下要送一批貨來,你們開啟門迎接我」,然後再回頭把貨送過去。

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

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

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

php中運用http呼叫的GET和POST方法

使用到的函式是curl init,curl setopt,curl exec,curl close。預設是get方法,可以選擇是否使用header ch curl init curl setopt ch,curlopt url,url curl setopt ch,curlopt timeout,2...

HTTP的兩種常用請求方式GET和POST

http http協議 hypertext transfer 用於從全球資訊網 wwww world wide web 伺服器傳輸超文字到本地瀏覽器的傳輸協議。http是乙個基於tcp ip通訊協議來傳遞資料 html檔案,檔案,查詢結果等 使用get方法時,查詢字串 名稱或鍵值對 是在get請求的...

Http中get和post請求

http定義了與伺服器互動的不同方法,最基本的方法有4種,分別是get,post,put,delete。url全稱是資源描述符,我們可以這樣認為 乙個url位址,它用於描述乙個網路上的資源,而http中的get,post,put,delete就對應著對這個資源的查,改,增,刪4個操作。到這裡,大家應...