GET和POST面試知識點

1、區別

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(具體的話你們之後看後端給的開發文檔就好了)
做者:高海濱(簡書做者) 連接:http://www.jianshu.com/p/5e55a734e9a2 來源:簡書 著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。
相關文章
相關標籤/搜索