GET与POST

参数:

GET传递的参数只能带URL后面,文本格式QueryString,各浏览器一般有长度限制,一般认为是2083,如果有中文字符更短。提交到服务器端的数据量小。参考:

https://www.XXX.com.cn/blog/20201021.html

POST可以传递 application/x-www-form-urlencoded 的类似 QueryString、multipart/form-data 的二进制报文格式(支持文件信息嵌入报文传输)、纯文本或二进制的body参数。提交到服务器端的数据量大。

用途:

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更安全一些。

自动化性能测试:

基于上面提到的nginx日志,可以使用grep GET+日期,awk格式化,然后sort -u去重,从而提取到某天的所有GET请求URL,使用程序模拟登陆,然后请求所有URL即可获取简单的性能测试数据,每个请求是否正确,响应时间多少等等。
但是对于POST请求,因为不知道报文,无法这样简单处理。可以通过nginx-lua获取报文输出到log,这样格式化会麻烦很多,但不失为一个办法。

其它

HEAD:获得报文首部

HEAD方法和GET方法一样,知识不返回豹纹的主体部分,用于确认URI的有效性及资源更新的日期时间等。
   具体来说:1、判断类型;2、查看响应中的状态码,看对象是否存在(响应:请求执行成功了,但无数据返回);3、测试资源是否被修改过
   HEAD方法和GET方法的区别:GET方法有实体,HEAD方法无实体。

PUT:传输文件

PUT方法用来传输文件,就像FTP协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存在请求URI指定的位置。但是HTTP/1.1的PUT方法自身不带验证机制,任何人都可以上传文件,存在安全问题,故一般不用。

DELETE:删除文件

指明客户端想让服务器删除某个资源,与PUT方法相反,按URI删除指定资源

OPTIONS:询问支持的方法

OPTIONS方法用来查询针对请求URI指定资源支持的方法(客户端询问服务器可以提交哪些请求方法)

TRACE:追踪路径

客户端可以对请求消息的传输路径进行追踪,TRACE方法是让Web服务器端将之前的请求通信还给客户端的方法

CONNECT:要求用隧道协议连接代理

CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL(安全套接层)和TLS(传输层安全)协议把通信内容加密后经网络隧道传输。

nginx会将post请求转为get么_前端角度谈GET与POST的区别相关推荐

  1. vue 一个页面有点请求需要同时发送_前端性能优化,这些你都需要知道

    来源: 海洋里的魔鬼鱼 前言 最近花了一些时间在项目的性能优化上,背后做了很多工作,但是最后依然没有达到自己想要的结果,有些失望,但是还是记录下自己的执着. 性能优化总结:减少请求次数.减小资源大小. ...

  2. 浏览器如何将你的http请求转为https请求?

    1.问题 向浏览器中输入"taobao.com" "www.taobao.com" "http://www.taobao.com",最终浏览 ...

  3. Nginx配置跨域请求 Access-Control-Allow-Origin *

    Nginx配置跨域请求 Access-Control-Allow-Origin * 当出现403跨域错误的时候 No 'Access-Control-Allow-Origin' header is p ...

  4. 摘要: Nginx 网络多并发请求的TCP网络参数做简单说明。

    摘要: Nginx 网络多并发请求的TCP网络参数做简单说明. 需要修改/etc/sysctl.conf来更改内核参数 #原有字段 net.ipv4.tcp_syncookies = 1 #新增字段 ...

  5. 解决通过Nginx转发的服务请求头header中含有下划线的key,其值取不到的问题

    解决通过Nginx转发的服务请求头header中含有下划线的key,其值取不到的问题 参考文章: (1)解决通过Nginx转发的服务请求头header中含有下划线的key,其值取不到的问题 (2)ht ...

  6. nginx工作进程处理请求的系统调用

    1.找到nginx的工作进程 ps aux |grep nginx 2.使用 strace 监控该进程[系统调用] strace -p 5439 3.对nginx发起简单get请求 wget loca ...

  7. Nginx+Lua+Redis 对请求进行限制

    Nginx+Lua+Redis 对请求进行限制 一.概述 需求:所有访问/myapi/**的请求必须是POST请求,而且根据请求参数过滤不符合规则的非法请求(黑名单), 这些请求一律不转发到后端服务器 ...

  8. nginx 如何将 https 请求转发到 http

    nginx 如何将 https 请求转发到 http 网站之前是 https 的,通过 nginx 设置好了,现在不想用 https 了,但发散到外界的一些网址还是 https 的,此时只能通过 ng ...

  9. NGINX中的的请求头x_real_ip和x_forwarded_for

    以下是转载内容: 内容来源:https://www.cnblogs.com/diaosir/p/6890825.html https://blog.csdn.net/feifeixiang2835/a ...

最新文章

  1. 第十二课.sklearn决策树实验
  2. idea添加maven libraries_使用IntelliJ IDEA创建一个Maven的Spring Boot项目
  3. 【ZOJ - 3946】Highway Project(最短路子图,维护双权值,贪心,最小树形图)
  4. linux sz到指定的机器,linux 机器之间 zssh, rz, sz互相传输讲解
  5. SSM+easyUI(框架的搭建)
  6. Matlab--三种归一化方法
  7. 点赞!这4款你常用的App已上线隐私政策
  8. ppt中流程图旁边怎么添加_辅食中的黑芝麻酱怎么添加呢?
  9. C语言根号作用,c语言中如何开根号运算
  10. 优化算法(1):最速下降法、牛顿法
  11. linux安全审计和加固工具-lynis
  12. 初级计算机基础知识教程,计算机基础知识(初中级教程)
  13. Siemens CXV65+Photoshop CS2
  14. 冯诺依曼体系结构计算机
  15. python中如何上下标
  16. gearman入门使用
  17. 理解离散傅立叶变换(一)——傅立叶变换的由来
  18. Mysql NDB and InnoDB 存储引擎区别
  19. 我该怎样度此生?——认真并干净地生活
  20. Java文件操作-I/O流

热门文章

  1. SpringBoot中使用Shiro和JWT做认证和鉴权
  2. RSA 非对称加密原理
  3. python中最难的是什么_Python 最难的问题你猜是什么?
  4. python tfidf特征变换_使用sklearn提取文本的tfidf特征
  5. java 跨类 调用 model_Model.java中的这两个方法,为什么不能在子类中调用,或者包内调用也行啊。...
  6. 深圳linux测试题库,Linux认证考试题库及答案
  7. 计算机办公应用软件初级,电脑办公软件有哪些?桌面便签办公软件基础教程
  8. Eclipse2020版本:pom.xml第一行报错:Could not initialize class org.apache.maven.plugin.war.
  9. 基于Echarts+HTML5可视化数据大屏展示—大数据管理平台中心
  10. easyexcel多个sheet导入_Java中Easypoi实现excel多sheet表导入导出功能