HTTP协议 GET和POST的纯区别

GET和POST区别

HTTP协议中发送请求的两种方法

GET一般用于获取/查询资源信息;------从指定的资源请求数据
POST一般用于更新资源信息。-------向指定的资源提交要被处理的数据

GET是不安全的,因为在传输过程,数据被放在请求的URL中,服务器会将请求URL记录到日志中,用户也可以在浏览器上直接看到提交的数据,故GET请求不应在处理敏感数据时使用;
POST的所有操作对用户来说都是不可见的,POST的参数通过request-body传递。

GET传输的数据量小,主要受URL长度限制;
POST可以传输大量数据,对数据长度没有要求,所以在上传文件只能使用POST。

GET请求可被收藏为书签;
POST请求不能被收藏为书签。

GET请求可被缓存;
POST请求不会被缓存。

GET请求只能进行url编码;
POST请求支持多种编码方式。

对参数的数据类型:
GET请求只接受ASCII字符;
POST请求没有限制。

GET请求保留在浏览器历史记录中;
POST请求不会保留在浏览器历史记录中。

还有一个重大的区别:
GET请求产生一个tcp数据包,POST请求产生两个tcp数据包:
GET请求:浏览器把请求头和请求体一起发送出去,服务器响应200 OK(正常返回数据);
POST请求:浏览器先发送请求头,服务器响应100 continue,浏览器才发送请求体,服务器响应200 OK(正常返回数据)。
这样来看,POST请求发送两次数据包比GET只发送一次数据包效率要低,实际情况下:
在网络状态好时,这种时间差别基本可以忽略;
在网络状态不好时,发送两次tcp数据包对于数据的完整性更好;
并不是所有的浏览器POST请求都发送两个数据包,火狐浏览器就一次。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值