1.get和post本質上沒有區別
get和post是http協議中的兩種傳送請求的方法, http是基於tcp/ip的關於資料如何在全球資訊網中如何通訊的協議,2.我們所說的區別http的底層是tcp/ip。所以get和post的底層也是tcp/ip,就是說,get/post都是tcp鏈結。
給get加上request body,給post帶上url引數,技術上是完全行的通的
get和post本質上就是tcp鏈結,並無差別。但是由於http的規定和瀏覽器/伺服器的限制,導致他們在應用過程中體現出一些不同。
get和post最重大區別:3.w3c標準解釋: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中。
get請求的引數是放在url裡的,post請求引數是放在請求body裡的;http請求,最初設定了八種方法。這八種方法本質上沒有任何區別。只是讓請求,更加有語義而已。get請求的url傳參有長度限制,而post請求沒有長度限制;
get請求的引數只能是ascii碼,所以中文需要url編碼,而post請求傳參沒有這個限制;
options 返回伺服器所支援的請求方法常用http狀態碼get 向伺服器獲取指定資源
head 與get一致,只不過響應體不返回,只返回響應頭
post 向伺服器提交資料,資料放在請求體裡
put 與post相似,只是具有冪等特性,一般用於更新
delete 刪除伺服器指定資源trace 回顯伺服器端收到的請求,測試的時候會用到這個
connect 預留,暫無使用
200 返回正常其他簡潔的解釋url可見性:304 服務端資源無變化,可使用快取資源
400 請求引數不合法
401 未認證
403 服務端禁止訪問該資源
404服務端未找到該資源
500 服務端異常
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 用來向目的伺服器發出請求,要求它接受被附在請求後的實體,並把它當作請求...