赞
踩
疑问收录解答
(1)GET请求用来获取数据资源,POST请求用来创建、发送数据资源。(详见下方补充说明)
(2)GET无请求主体,POST有请求主体。
(3)GET有幂等性,PSOT非幂等。(幂等性即用户对于同一操作发起的一次或多次请求结果一致,不会因为多次点击而产生其他效果)
(4)GET可以进行缓存,POST一般不缓存。
(5)GET可存放历史记录和书签,POST不可存放。
(6)POST相对GET更加安全(详见补充说明)
(7)GET请求有长度限制、POST几乎无限制。(详见下方补充说明)
补充说明:
1、GET请求:请求的数据会附加在URL后,以“?”分割URL以及传输的数据,多个参数会使用“&”进行连接,URL采用的是ASCLL编码格式,而非Unicode的编码格式,所有的非ASCLL编码的字符都需要在编码后进行传输。
2、POST请求:POST请求会把请求的数据放在HTTP的Body数据中,形式分为两种,一种是参数名与参数值,一种是键值对(JSON),普遍的JSON是通用型的格式。
3、HTTP没有对传输的数据大小进行限制,也没有对URL的长度进行限制,而我们所说的GET请求的长度限制实际上是特定的浏览器和服务器对URL进行的长度限制,限制为2083Byte。POST并非通过URL传值,理论上就不会受到大小限制,但理论终究是理论,实际上服务器还是会对POST所提交的数据进行大小限制,例如IIS6、Apache等,它们均有独特的配置规则。
4、POST方式比GET的安全性高的原因主要是因为GET能够在地址栏直接看到请求的数据(问号后面的数据),采用GET传输可能会受到 CSRF跨站请求伪造攻击。
CSRF跨站请求伪造详细解释
https://www.cnblogs.com/sanqiansi/p/10026534.html
而POST的请求方式需要通过破解、拦截方式才能够获取到数据,例如常见的抓包工具获取,从而使用POST请求方式相对于使用GET请求方式安全度更高(相对提高不代表绝对安全,互联网的安全中只有相对安全的概念,不存在绝对安全)
HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599) -↓文本表格摘自菜鸟教程:
ps:最常见的HTTP状态码为200、300、404、500、502等
HTTP是一种无状态的协议,服务器本身没有记忆功能,无法记住客户端之前是否有发送过请求,因此客户端每次发送的请求都是独立的。
缺点:比如当客户端必须要登录才能进行的操作,客户端频繁发送敏感信息,会产生严重的安全隐患。
session会话机制:
原理:当用户登录时,发送用户名和密码之后,服务端会给客户端生成一个sessionid,标明这是属于哪一个用户,然后在sessionid中存储该用户的数据。服务端通过cookie的形式把sessionid返回给客户端。每次客户端请求该服务时,会自动带上sessionid这个cookie。服务器接收到后查询有没有存储sessionid的信息
session特点:
1.存储在服务端,占用服务器非常多的存储资源,导致服务器压力增大
2.响应速度慢
3.CSRF跨站伪造请求攻击
4.Cookie无法跨越,涉及到多个服务的跨域操作,有很大的局限性,拓展性不强
解决方法:配置redis集群
当单点数据库挂掉时,可以使用其他数据库中的数据。集群要做好数据同步,保证每个节点得到数据一致性,也要做好负载均衡,尽量不让节点因为负载挂掉。就算其中有节点挂掉了,也不影响服务执行。唯一的缺点是维护成本巨大。(类似于计算机网络中的多生成树技术)
token安全令牌机制:
原理: 服务器并不存储用户数据,而是直接通过编码或者加密方式把用户数据作为令牌直接返回给客户端,传递的方式由服务端自己设置。每次客户端携带这个令牌,证明自己的身份,从而得到自己的状态和数据
本质:用户信息通过编码(base64url)转化成另一种形态得到Token,再通过Token解码得到用户数据,未加签名的token会很容易被伪造
解决办法:
签名: token是由服务端签发生成的,只有服务器才知道签名,从而保证信息不会被伪造
token特点:
1、不需要存储在服务端,服务器可以节省大量的存储资源,加快了响应速度
2、传递的方式也是由双方协定,不管是否跨域,都可以正常传递
3、只消耗CPU资源计算资源(验签)
4、token通常而言不能立即失效,部分需要立即失效:有些大厂采用配置redis集群,回到session
cookie和session token的联系:
1、session可以通过Cookie实现,也可以不通过
2、token也可以通过Cookie实现,也可以不通过
3、Cookie+session一般都搭配做认证,Cookie是放在浏览器中的,session 是保存在服务端的数据库中的
4、由于Cookie一般是和域名绑定的,一般很少和token搭配
答:有重复的内容,也有不重复的内容,重复的内容主要体现在:
业务功能: 业务功能重合率是最高的,在日常的接口测试中,业务功能上的检查也是占主要的部分,至于为何要测的原因就是一开始提到的要稳固底层。
边界值测试: 通常我们在进行接口测试时会进行传参,而传参和客户端正常的逻辑现象表现不同,例如购买王者荣耀游戏的每日免费礼包,礼包每日限购1个且免费购买,当你购买后礼包的次数为0并置灰且不可购买,但在接口测试时传参不受到前端的判断限制,可以自由输入,那么输入10个,输入100个就很可能会出现绕过前端逻辑的情况。在正常的客户端购买会受到代码逻辑限制,这里是其中的区别,在业务功能的检查是无法做到的
性能测试:对于手机软件而言,更多的关注一些APP的性能、CPU、内存等情况, 对于手机游戏同样也会关注一些CPU、内存、再此之上会关注渲染、DC、包体大小、FPS、内存泄露等等,无论是游戏测试还是软件测试的接口,都会关注接口响应、服务器数据处理响应、接口并发等场景,关注点也会不同。
答:需要,无论是软件测试还是游戏测试,功能测试才是最核心的检查,测试后端的接口为了稳固底层代码、降低成本,提前介入测试(主要是防止底层出错,Bug“买一赠多”),并不意味着不需要进行功能测试,在5.2.1中也提及到了,有重复的内容也有不重复的内容,接口测试不能够完全取代功能(手工)测试,故此我们在进行了后端接口测试后,仍然需要对功能进行检查。
答:通常而言在一些公司里没有接口需求文档是不会要求进行接口测试的,如果所处的公司收到了接口测试任务,但又没有接口需求文档时,可以通过抓包的方式抓取接口,还可以自动生成接口文档(网上相关的资料很多,大家可以查阅),当然笔者是不建议这样做的,但现实终究是残酷的鸭~
答:集成测试阶段
答:功能准确无误,响应速度快,支持多用户并发操作,安全性较高
好啦以上就是本次文章分享的全部内容啦,你学会了吗?有问题记得留言讨论哦
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走…
现在我邀请你进入我们的软件测试学习交流群:【746506216
】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。