GET與POST的區別

2021-09-24 15:02:25 字數 2154 閱讀 7820

1.get和post本質上沒有區別

get和post是http協議中的兩種傳送請求的方法, http是基於tcp/ip的關於資料如何在全球資訊網中如何通訊的協議,

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

給get加上request body,給post帶上url引數,技術上是完全行的通的

get和post本質上就是tcp鏈結,並無差別。但是由於http的規定和瀏覽器/伺服器的限制,導致他們在應用過程中體現出一些不同。

2.我們所說的區別

get和post最重大區別:

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

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

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

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中。

3.w3c標準解釋:

get請求的引數是放在url裡的,post請求引數是放在請求body裡的;

get請求的url傳參有長度限制,而post請求沒有長度限制;

get請求的引數只能是ascii碼,所以中文需要url編碼,而post請求傳參沒有這個限制;

http請求,最初設定了八種方法。這八種方法本質上沒有任何區別。只是讓請求,更加有語義而已。

options 返回伺服器所支援的請求方法

get 向伺服器獲取指定資源

head 與get一致,只不過響應體不返回,只返回響應頭

post 向伺服器提交資料,資料放在請求體裡

put 與post相似,只是具有冪等特性,一般用於更新

delete 刪除伺服器指定資源trace 回顯伺服器端收到的請求,測試的時候會用到這個

connect 預留,暫無使用

常用http狀態碼

200 返回正常

304 服務端資源無變化,可使用快取資源

400 請求引數不合法

401 未認證

403 服務端禁止訪問該資源

404服務端未找到該資源

500 服務端異常

其他簡潔的解釋url可見性:

get,引數url可見;

post,url引數不可見

資料傳輸上:

get,通過拼接url進行傳遞引數;

post,通過body體傳輸引數

快取性:

get請求是可以快取的

post請求不可以快取

後退頁面的反應

get請求頁面後退時,不產生影響

post請求頁面後退時,會重新提交請求

傳輸資料的大小

get一般傳輸資料大小不超過2k-4k(根據瀏覽器不同,限制不一樣,但相差不大)

post請求傳輸資料的大小根據php.ini 配置檔案設定,也可以無限大。

安全性原則上post肯定要比get安全,畢竟傳輸引數時url不可見

其他更為詳細的解釋:

Get與Post的區別

1.href與action的區別 href只能get引數,action能get引數又能post引數 href一般用於單個連線,可以帶引數 url重寫 是採用get方式請求的,在位址列中可以看到所有的引數 action一樣用於表單的提交 如 註冊 等,他可以提交大量和比較複雜的引數,可通過post和g...

Get 與Post 的區別

get 與post 的區別 表單提交中get和post方式的區別有5點 1.get是從伺服器上獲取資料,post是向伺服器傳送資料。2.get是把引數資料佇列加到提交表單的action屬性所指的url中,值和表單內各個字段一一對應,在url中可以看到。post是通過http post機制,將表單內各...

get 與 post 的區別

先簡單的介紹一下 get與 post lget 是以實體的方式得到由請求 uri所指定資源的資訊,如果請求 uri只是乙個資料產生過程,那麼最終要在響應實體中返回的是處理過程的結果所指向的資源,而不是處理過程的描述。l post 用來向目的伺服器發出請求,要求它接受被附在請求後的實體,並把它當作請求...