get與post區別


一、get和post區別

1.url可見性

  get傳參方式是通過地址欄URL傳遞,是可以直接看到get傳遞的參數,post傳參方式參數URL不可見,get把請求的數據在URL后通過?連接,通過&進行參數分割。psot將從參數存放在HTTP的包體內

2.傳輸數據大小

  get傳遞數據是通過URL進行傳遞,對傳遞的數據長度是受到URL大小的限制,URL最大長度是2048個字符。post沒有長度限制

3.后退頁面

  get后退不會有影響,post后退會重新進行提交

4.緩存

  get請求可以被緩存,post不可以被緩存

5.編碼方式

  get請求只URL編碼,post支持多種編碼方式

6.歷史記錄

  get請求的記錄會留在歷史記錄中,post請求不會留在歷史記錄

7 字符類型

  get只支持ASCII字符,post沒有字符類型限制

二、post相比較get傳參方式的優點

  1.安全性比get傳參方式好:

    a.存在於HTTP包中,一般不會直接被查找到

    b.post不會被瀏覽器進行緩存

    c.不會留在歷史記錄中

  (並不代表post一定安全,因為在HTTP下都是明文傳輸,post仍然可以被查找到,增加安全性最好使用https協議)

  2.post沒有字符和編碼的限制,能發送的數據類型更多

  3.post傳送數據沒有大小限制,比get可以發送的更多的數據

  post的缺點:速度比get傳輸慢,get的效率更高

三、為什么get的效率比post高

  1.post在接收返回來的數據會先將請求頭發送給服務器確認,然后才真正的發送數據,(相當於第一次先向服務器打個招呼,第二次才將數據真正的發過來,get則是直接發送數據。專業的說法是,get產生一個TCP數據包,post產生兩個TCP。數據包但並不是所有的瀏覽器post都會請求兩次,火狐瀏覽器就會請求一次)總結起來就是請求的過程比get更多

  2.get會將數據進行緩存


免責聲明!

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



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