15

GET与POST的区别

 3 years ago
source link: https://blog.csdn.net/KimmKing/article/details/79834901
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

GET与POST的区别

kimmking 2018-04-06 17:00:32 2386
  • GET用于从服务器端获取数据,包括静态资源(HTML|JS|CSS|Image等等)、动态数据展示(列表数据、详情数据等等)。
  • POST用于向服务器提交数据,比如增删改数据,提交一个表单新建一个用户、或修改一个用户等。
  • 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一般则不会被这些缓存因素影响。
  • 默认对于nginx的access log,会自动记录get或post的完整URL,包括其中带的参数。
  • 对于POST来说,请求的报文却不会被记录,这些对于敏感数据来说,POST更安全一些。
  1. 自动化性能测试:
  • 基于上面提到的nginx日志,可以使用grep GET+日期,awk格式化,然后sort -u去重,从而提取到某天的所有GET请求URL,使用程序模拟登陆,然后请求所有URL即可获取简单的性能测试数据,每个请求是否正确,响应时间多少等等。
  • 但是对于POST请求,因为不知道报文,无法这样简单处理。可以通过nginx-lua获取报文输出到log,这样格式化会麻烦很多,但不失为一个办法。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK