get和post一般的區別


get和post一般的區別:

  1.post更安全(不會作為url的一部分,不會被緩存、保存在服務器日志、以及瀏覽器瀏覽記錄中)

  2.post發送的數據量更大(get有url長度限制)

  3.post能發送更多的數據類型(get只能發送ASCII字符)

  4.post比get慢

5.Post是向服務器提交數據的一種請求,get是向服務器發索取數據的一種請求。

6.get會將數據緩存起來,而post不會

 


  但是,get比post更快


post請求包含更多的請求頭
post在真正接受數據之前會先將請求頭發送給服務器進行確認,然后才真正發送數據

  post請求的過程:

  1.瀏覽器請求tcp連接(第一次握手)

  2.服務器答應進行tcp連接(第二次握手)

  3.瀏覽器確認,並發送post請求頭(第三次握手,這個報文比較小,所以http會在此時進行第一次數據發送)

  4.服務器返回100 continue響應

  5.瀏覽器開始發送數據

  6.服務器返回200 ok響應

 

  get請求的過程

  1.瀏覽器請求tcp連接(第一次握手)

  2.服務器答應進行tcp連接(第二次握手)

  3.瀏覽器確認,並發送get請求頭和數據(第三次握手,這個報文比較小,所以http會在此時進行第一次數據發送)

  4.服務器返回200 ok響應。


那么 GET 相對 POST 的優勢是什么
GET 的URL可以人手輸,本質上面, GET 的所有信息都在URL, 所以很方便的記錄下來重復使用。 如果你期望你復制的url資源可以更好的分享給別人看,就用GET方法吧POST方法做不到
從深層次上分析:
雖然這兩者都是明文傳送。但它們表達的語義不一樣,這決定了主干網絡可以對其做不同的處理。
get表達的是一種冪等的,只讀的,純粹的操作,即它除了返回結果不應該會產生其它副作用(如寫數據庫),因此絕大部分get請求(通常超過90%)都直接被CDN緩存了,這能大大減少web服務器的負擔。

而post所表達的語義是非冪等的,有副作用的操作,所以必須交由web服務器處理。

把所有get請求換成post,意味着主干網絡上的所有CDN都廢掉了,web服務器要處理的請求數量將成百上千倍地增加

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM