前言:
GET和POST設計目的本身就是不一樣的,很多人簡單理解POST更安全就嫌棄GET,索性巴不得全部換成POST請求。我只能呵呵了...
POST比GET更安全?暫且不說是不是真的安全,就算是,難道設計都是以安全為最終目的嗎?POST請加個書簽給我看看,加個緩存給我看看...片面考慮問題得出的結論都是不負責任的。
所謂安全性
(1)從攻擊上說:
POST相對GET安全一點點,畢竟https加密下post參數很難獲取,但是get也是可以加密的。所以說安全一點。
(2)從修改數據庫上說:
GET是安全的,而POST是不安全的,不管你的參數怎么隱藏,一旦破解就有可能修改數據庫,看上去是一件很危險 事情。而GET一般只查詢數據庫。
先簡單介紹一下GET和POST,然后討論如何選擇吧
一、GET
簡單請求方式:協議+地址+參數
GET的優(yōu)點
1、get的URL可以人肉手輸查看網頁的
2、get的請求中URL可以被存在書簽里,或者歷史里,或者快速撥號里面,或者分享給別人
3、get的請求URL可以被搜索引擎收錄
4、帶云壓縮的瀏覽器,比如Opera mini/Turbo 2, 只有GET才能在服務器端被預取的
5、get的URL可以被緩存,避免重復請求
6、GET 速度一般比 POST快,如果緩存更不用說了
GET的缺點
運動都是相對的,優(yōu)點有時候也可以成為缺點。
1、參數暴露地址中更容易被竊取
2、各家瀏覽器會對get長度做限制(不是協議本身限制),實際上也用不著那么長,POST同時也是受到服務器傳輸大小限制的,只不過設置大小不一樣而已。
二、POST
簡單請求方式:協議+地址+HEADER 參數
post是通過HTTP post機制,將表單內各個字段與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址,用戶明眼看不到這個過程(想看也不是不能,https相對較難)。
POST可以做什么?
1、請求信息而不容易暴露敏感參數,比如手機號,省份證號,密碼等等
2、提交表單對數據庫進行:增刪改查(post可以只查詢)
比較 GET 與 POST后發(fā)現各有優(yōu)缺點。
如何選擇?
1、如果你是查詢數據,并且需要上述GET優(yōu)點里前五條的要求時,那么選擇GET吧!
2、如果涉及修改數據庫,或者除了上述以外的,那么就用POST吧!
移動開發(fā)通信之http/https概念-優(yōu)缺點-選擇
移動開發(fā)通信之https加密協議SSL/TLS理解
移動開發(fā)通信之API接口安全設計