GET与POST那些事

今天动手验证了,POST请求是会比GET请求多一次发包过程,

以下是GET和POST在server端的抓包情况,省去前面的三次握手。首先是GET的:


不出所料,在实际请求时参数也是放在URL中。一个包搞定。


再来看POST:



从上图可以看出,POST是先发送请求头,再发送请求体,也就是即使参数再少再短,也会被分成两个包来发送(相对于GET)

POST请求比GET请求多了一个发包,确认包的过程。


从网上goole到一些使用规则:

1、Use GET for safe actions and POST for unsafe actions.

 

一般来说,对数据的提交有安全性要求,就应该用POST而不是用GET,那是因为GET有以下几个特点:

一、GET请求能够被cache。

二、GET请求能够被保存在浏览器的浏览历史里面。(如果把用户的密码GET提交,那么别人查看他的历史记录,就可以直接看到密码)

三、GET请求能够

 

2、Use POST when dealing with sensitive data

 

这是因为,GET参数是带在URL中的,因而一些与用户隐私相关的页面参数,就不宜用GET提交。

 

3、Use POST when dealing with long requests

 

RFC规定一个URL的最大长度为2048字符

 

4、Use GET in AJAX environments

 

因为POST比GET多一个发包,确认收包的过程,因此,大部分AJAX请求,其实更适合用GET来提交,而不是一味地用POST。更何况异步提交的AJAX请求,用户不会在URL中看到的。

抓包的话,POST啥的,也都看得到。



因此,需要区分实际场景判断是用GET还是POST,而不是单纯地以为POST请求会安全很多,而全部请求都用POST。


不过,其实POST请求浏览器应该也能一次请求搞定,为什么要先发包头,再等server请求后,再发剩余的包体。这点还没找到对应有说服力的资料,或是想出其必要性。mark,再好好思考思考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值