js---post與get請求的區別


request獲取請求參數

最為常見的客戶端傳遞參數方式有兩種:

瀏覽器地址欄直接輸入:一定是GET請求;

超鏈接:一定是GET請求;

表單:可以是GET,也可以是POST,這取決與<form>的method屬性值;

 

GET請求和POST請求的區別:

1.效率

  • GET的意思是『得』,從服務器獲取數據(也可以上傳數據,參數就是),效率較高
  • POST的意思是『給』,但可以向服務器發送數據和下載數據,效率不如GET

2.緩存

  • GET 請求能夠被緩存,默認的請求方式也是有緩存的
  • POST請求默認不會緩存
  • 緩存是針對URL來進行緩存的,GET請求由於其參數是直接加在URL上-的,一種參數組合就有一種URL的緩存,可以根據參數來進行一一對應,重復請求是冪等的(不論請求多少次,結果都一樣);
  • 而POST請求的URL沒有參數,每次請求的URL都相同,數據體(HTTPBody)可能不同,無法一一對應,所以緩存沒有意義

3.安全性

  • GET的所有參數全部包裝在URL中,明文顯示,且服務器的訪問日志會記錄,非常不安全
  • POST的URL中只有資源路徑,不包含參數,參數封裝在二進制的數據體中,服務器也不會記錄參數,相對安全。所有涉及用戶隱私的數據都要用POST傳輸

POST的安全是相對的,對於普通用戶來說他們看不到明文,數據封裝對他們來說就是屏障。但是對於專業人士,它們會抓包會分析,沒有加密的數據包對他們來說也是小case。所以POST僅僅是相對安全,唯有對數據進行加密才會更安全。當然加密也有被破解的可能性,理論上所有的加密方式都可以破解,只是時間長短的問題。而加密算法要做的就是使得破解需要的時間盡量長,越長越安全。由於我們也需要解密,加密算法太過復雜也並非好事,這就要結合使用情況進行折中或者足夠實際使用即可。繞的有點遠,具體的話,我將在后續的文章之中介提及,並介紹一些常用的加密算法。

4.數據量

HTTP協議中均沒有對GET和POST請求的數據大小進行限制,但是實際應用中它們通常受限於軟硬件平台的設計和性能。

  • GET:不同的瀏覽器和服務器不同,一般限制在2~8K之間,更加常見的是1k以內
  • POST方法提交的數據比較大,大小靠服務器的設定值限制,PHP默認是2M(具體的話大家以后看后端給的開發文檔就行了)


免責聲明!

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



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