前言:
GET和POST设计目的本身就是不一样的,很多人简单理解POST更安全就嫌弃GET,索性巴不得全部换成POST请求。我只能呵呵了...
POST比GET更安全?暂且不说是不是真的安全,就算是,难道设计都是以安全为最终目的吗?POST请加个书签给我看看,加个缓存给我看看...片面考虑问题得出的结论都是不负责任的。
所谓安全性
(1)从攻击上说:
POST相对GET安全一点点,毕竟https加密下post参数很难获取,但是get也是可以加密的。所以说安全一点。
(2)从修改数据库上说:
GET是安全的,而POST是不安全的,不管你的参数怎么隐藏,一旦破解就有可能修改数据库,看上去是一件很危险 事情。而GET一般只查询数据库。
先简单介绍一下GET和POST,然后讨论如何选择吧
一、GET
简单请求方式:协议+地址+参数
GET的优点
1、get的URL可以人肉手输查看网页的
2、get的请求中URL可以被存在书签里,或者历史里,或者快速拨号里面,或者分享给别人
3、get的请求URL可以被搜索引擎收录
4、带云压缩的浏览器,比如Opera mini/Turbo 2, 只有GET才能在服务器端被预取的
5、get的URL可以被缓存,避免重复请求
6、GET 速度一般比 POST快,如果缓存更不用说了
GET的缺点
运动都是相对的,优点有时候也可以成为缺点。
1、参数暴露地址中更容易被窃取
2、各家浏览器会对get长度做限制(不是协议本身限制),实际上也用不着那么长,POST同时也是受到服务器传输大小限制的,只不过设置大小不一样而已。
二、POST
简单请求方式:协议+地址+HEADER 参数
post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址,用户明眼看不到这个过程(想看也不是不能,https相对较难)。
POST可以做什么?
1、请求信息而不容易暴露敏感参数,比如手机号,省份证号,密码等等
2、提交表单对数据库进行:增删改查(post可以只查询)
比较 GET 与 POST后发现各有优缺点。
如何选择?
1、如果你是查询数据,并且需要上述GET优点里前五条的要求时,那么选择GET吧!
2、如果涉及修改数据库,或者除了上述以外的,那么就用POST吧!
移动开发通信之http/https概念-优缺点-选择
移动开发通信之https加密协议SSL/TLS理解
移动开发通信之API接口安全设计
网友评论