post和get请求的区别

现在我是这么理解get和post:都是想服务器提交数据,并且都会从服务器获取数据,唯一的区别就是传送方式不同

get通过地址栏传输,post通过报文传输。这么理解对吗?

=================================================

1. 最直观的就是语义上的区别,get用于获取数据,请求参数,post用于提交数据。如:表单数据保存。

2. get参数有长度限制(受限于url长度,具体的数值取决于浏览器和服务器的限制),而post无限制

============== 从不同的维度,对比get和 post请求方式。================

转载: http://kimmking.github.io/2017/12/01/comparing-get-and-post/

对比项

  1. 参数的大小:
  1. 用途:
  • GET用于从服务器端获取数据,包括静态资源(HTML|JS|CSS|Image等等)、动态数据展示(列表数据、详情数据等等)。
  • POST用于向服务器提交数据,比如增删改数据,提交一个表单新建一个用户、或修改一个用户等。
  1. 缓存:
  • GET时默认可以复用前面的请求数据作为缓存结果返回,此时以完整的URL作为缓存数据的KEY。所以有时候为了强制每次请求都是新数据,我们可以在URL后面加上一个随机参数Math.random或时间戳new Date().getTime()、或版本号,比如abc.com?a=1&rnd=0.123987之类的。这也是目前一些静态资源后面加一个很长的版本号的原因,jquery-min.js?v=13877770表示一个版本,当页面引用jquery-min.js?v=13877771时浏览器必然会重新去服务器请求这个资源。jQuery.ajax方法,如果cache=false,则会在GET请求参数中附加”_={timestamp}”来禁用缓存。
  • POST一般则不会被这些缓存因素影响。
  1. 安全性:
  • 默认对于nginx的access log,会自动记录get或post的完整URL,包括其中带的参数。
  • 对于POST来说,请求的报文却不会被记录,这些对于敏感数据来说,POST更安全一些。
  1. 自动化性能测试:
  • 基于上面提到的nginx日志,可以使用grep GET+日期,awk格式化,然后sort -u去重,从而提取到某天的所有GET请求URL,使用程序模拟登陆,然后请求所有URL即可获取简单的性能测试数据,每个请求是否正确,响应时间多少等等。
  • 但是对于POST请求,因为不知道报文,无法这样简单处理。可以通过nginx-lua获取报文输出到log,这样格式化会麻烦很多,但不失为一个办法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值