GET or POST 你真的懂了吗?

Get和post都是从客户端发生到服务器的http 请求。他们最大的区别是:get将发送给服务器的请求参数放在了url里面,如:http://www.paischool.com?name=abc&sex=male
也就是http请求的地址栏里面

post请求确将name=abc&sex=male放在了http请求的body里面。get请求只是body为空而已。

对于安全性,很明显,Get讲请求参数放在在地址栏里面,使用浏览器就可以看到。如果用户登录使用Get,在页面跳转的时候就可以在地址栏里面看到用户名和密码,这是相当危险的。而post将其放在http协议的body里面,所以在页面跳转的时候地址栏里是看不到的。相对安全一点,但是通过抓包代理的方式还是很容易拿到这个密码的。

那密码如何做才安全呢?我们一般采用https协议,这样整个http协议都是加密的。另外,有同学提到将密码加密了在放在post http body里面,然后服务器端解密,不是安全了吗?大家思考一下如果黑客拿到了加密后的密码,然后再发生一次请求不一样登录成功了吗?这就是一般所说的重放攻击。

另外,get和post只是请求方式不一样而已。和编码方式无关,中文传输一般可以URL encode然后放在地址栏里面。Get也不只能做查询,只是因为修改记录暴露在地址栏里面不安全,所以大家一般只是用Get做查询而已。其实http协议只是相当于一个物流公司,至于你发送什么货物,和拿这个货物做什么(服务端处理)他是不管的.

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值