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

4f9101b1747a99b140b0ca2d03fce1d7.png

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(传输层安全)协议把通信内容加密后经网络隧道传输。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567025.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js预览本地word文档_Github+docsify打造在线文档

效果图如下预览链接:https://a870439570.github.io/interview-docs快速开始首先先安装好npm和nodejs,这里就不做过多介绍了 自信安装即可 (https://blog.csdn.net/zimushuang/article/details/79715679)安装docsify 推荐安装 docsify-cli 工具,可以方便创…

python创建一个json_如何为Python选择一个更快的JSON库

使用JSON越多, 你就越有可能遇到JSON编码或解码瓶颈。Python的内置库也不错, 但是还有多个更快的JSON库可用: 如何选择使用哪一个呢?事实是,没有一个正确的答案,没有一个最快的JSON库来超越其他所有库:一个“快速的JSON库”对不同的人意味着不同的东西&…

python函数拟合不规则曲线_python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案...

第一种是进行多项式拟合,数学上可以证明,任意函数都可以表示为多项式形式。具体示例如下。 ###拟合年龄 import numpy as np import matplotlib.pyplot as plt #定义x、y散点坐标 x [10,20,30,40,50,60,70,80] x np.array(x) print(x is :\n,x) num […

mysql myisam 分表_mysql myisam简单分表设计

一般来说,当我们的数据库的数据超过了100w记录的时候就应该考虑分表或者分区了,这次我来详细说说分表的一些方法。目前我所知道的方法都是MYISAM的,INNODB如何做分表并且保留事务和外键,我还不是很了解。首先,我们需要…

python数据结构 树_Python数据结构——AVL树的实现

既然,我们已经证明,保持 AVL 树的平衡将会使性能得到很大的提升,那我们看看如何在程序中向树插入一个新的键值。因为所有的新键是作为叶节点插入树的,而新叶子的平衡因子为零,所以我们对新插入的节点不作调整。不过一旦…

mysql连接规定时区以及编码_springboot项目中使用mysql连接遇到时区timezone问题,和编码encoding问题解决...

springboot项目中使用mysql连接遇到时区timezone问题,和编码encoding问题解决问题原因1.application.properties的设置1.1spring.datasource.driver-class-name1.2spring.datasource.url1.3spring.datasource.url其他问题总结问题原因1.mysql版本问题导致需要时区的…

python课程设计矩阵对角线之和_在python中如何求矩阵对角线上下元素的和?

下面是一个示例案例,演示如何使用嵌套循环在两种情况下求和:matrix [[ij for j in range(4)] for i in range(4)] for row in matrix: print(" ".join(list(map(str,row)))) totalSum 0 for i in range(1,len(matrix)): for j in range(i): …

mysql 中varchar_MYSQL中VARCHAR和CHAR类型

存储引擎存储CHAR或者VARCHAR值的方式在内存中和在磁盘上可能不一样,所以MYSQL服务器从存储引擎读出的值可能需要转换为另一种存储格式VARCHARvarchar类型用于存储可变长字符串。比定长类型更节省空间,因为它仅使用必要的空间。有一种情况例外&#xff0…

python保存图片_python保存网络图片问题

保存图片代码: def getImg(self,img_url_i):img_text login_session.get(img_url_i,headersself.headers,verifyFalse).textimg_soup BeautifulSoup(img_text,lxml)img_jpg img_soup.find_all("img",class_"origin_image zh-lightbox-thumb lazy&…

python安装常见问题_Python常见问题

问题描述: 在linux环境下部署Python项目时常常报错无法找到自己编写的模块解决方案export PYTHONPATH项目路径问题描述:Scrapy防封之settings文件设置解决方案设置动态USER-AGENT安装scrapy-fake-useragent模块在settings.py中添加配置DOWNLOADER_MIDDLEWARES {scrapy.downloa…

python 生成字符串_Python字符串生成器,按照特定的顺序

我正在制作一个程序,运行时会根据我定义的字符列表生成一个随机字符串。 的代码是:Python字符串生成器,按照特定的顺序 from random import randint from random import * import random Upperletters["A","B","C&q…

python解析sql文件_如何从Python中解析sql文件?

是否有任何方法可以从Python中执行.SQL文件中的某些SQL命令,而不是文件中的所有SQL命令?假设我有以下.sql文件:DROP TABLE IF EXISTS tableA;CREATE TABLE tableA(some_code) ENGINEMyISAM DEFAULT CHARSETlatin1;DROP TABLE IF EXISTS table…

滑动轨迹 曲线 python_python – 计算轨迹(路径)中的转折点/枢轴点

您可以使用 Ramer-Douglas-Peucker (RDP) algorithm来简化路径。然后,您可以计算简化路径每段的方向变化。对应于方向最大变化的点可以称为转折点: RDP算法的Python实现可以在on github中找到。 import matplotlib.pyplot as plt import numpy as np imp…

metinfo mysql 数据表_《MetInfo网站管理系统》常见问题整理

1.MetInfo安装过程中的数据库名称、密码等参数如何填写?执行安装脚本的“第三步:数据库设置”,请依据注释配置空间服务商提供的数据库服务器、用户名、密码及数据库名。数据库参数MetInfo无法告诉你如何设置,需要根据服务器账号的…

设无向图g如图所示_阿里重磅发布大规模图神经网络平台 AliGraph,架构算法解读...

图神经网络 (GNN) 主要是利用神经网络处理复杂的图数据,它将图数据转换到低维空间,同时最大限度保留结构和属性信息,并构造一个用于训练和推理的神经网络。在实际应用中,为了加速 GNN 训练和新算法的快速迭代,设计一套…

mysql5.0.19_CentOS下升级MySQL5.0.19到5.5

系统环境:CentOS 5.5CentOS 5.5的源mysql目前还停留在5.0.19上,要做数据库主从的时候,必须升级到5.1以上。索性,直接到5.5吧1系统环境:CentOS 5.5CentOS 5.5的源mysql目前还停留在5.0.19上,要做数据库主从的…

基于点云的三维重建_香港科技大学王煜教授:深度学习在物体三维重建中的应用...

基于单幅图像的物体三维重建是计算机视觉领域的一个重要问题, 近十年来得到了广泛地关注. 随着深度学习的不断发展, 近年来逐渐成为一个新的学术研究热点问题.计算机视觉研究的主要目标之一是从二维图像复原三维结构. 二维图像是当今时代极易获取的数据形式, 互联网上每时每刻都…

ranger管mysql_添加Kafka的Ranger访问权限策略

设置Kafka管理员权限在首页中单击“Kafka”区域的组件插件名称,例如“Kafka”。选择“Policy Name”为“all - topic”的策略,单击按钮编辑策略。在“Allow Conditions”区域,单击“Select User”下选择框选择用户。单击“Add Permissions”&…

python twisted和flask_Python高效开发实战——Django、Tornado、Flask、Twisted(第2版)

上篇 Python基础第1章 Python基础知识2 1.1 Python综述3 1.1.1 了解Python的特性及版本3 1.1.2 安装Python5 1.1.3 使用Python原生编辑器8 1.1.4 使用Eclipse开发环境9 1.1.5 Python编程入门——解决“斐波那契数列”问题14 1.2 数据类型17 1.2.1 Number类型17 1.2.2 Sequence类…

lt;++mysql_php+js+mysql设计的仿webQQ-lt;1gt;邮箱验证

最近用phpjsmysql做了一个仿webQQ的课程设计&#xff0c;收获很多&#xff0c;现在将关键的技术总结一下&#xff0c;供大家学习交流。<1>邮箱验证用户在注册的时候&#xff0c;会在文本框里输入邮箱&#xff0c;这个时候通过文本框的onblur和onchange事件用Ajax无刷新技…