http的get和post的區別



內部因素:編碼方式,報文
外部因素:緩存[瀏覽器],長度限制[瀏覽器],請求次數[瀏覽器],冪等性/副作用[接口] 安全性

參數編碼
get:僅支持url編碼,參數需要編碼和解碼
post:多種編碼方式

報文
get:參數放在url
post:參數放在請求體

緩存
get請求會被瀏覽器緩存
post不會

長度限制
瀏覽器允許get請求url長度為8k,過長會影響效率
post沒有限制

請求次數
get請求一次
post:有的瀏覽器post的head和body會分開請求,head到達server后,會響應100,然后繼續發送body,返回200。所以也會有效率問題,不過網絡好的情況下影響不大。

冪等性/副作用
冪等性可查看下方參考鏈接
get:冪等性,根據語義,get請求只在服務端獲取數據,所以每次獲取的結果都是一樣的。
post:非冪等性,會在服務端更改狀態,比如調用了刪除接口,下次在調用可能就是返回不存在當前商品了。所以post存在副作用。不過這些都是根據接口有關的認為因素,跟http本身沒有關系。

安全性
至於安全性,兩個http請求本身都是不安全的,因為http傳遞數據都是明文發送的,所以加上ssl才能更安全。
但是從表面上看,get請求把參數放在url上是不安全的,所以一定不要在get請求中把敏感信息放在url上。
從副作用的角度上講,get請求對數據是安全的,因為它只獲取數據,不會更改狀態。

參考文章
http冪等性
帶你深入理解HTTP中GET和POST的區別


免責聲明!

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



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