疑问收录解答

01 GET与POST的区别

(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请求方式安全度更高(相对提高不代表绝对安全,互联网的安全中只有相对安全的概念,不存在绝对安全)

02 HTTP状态码详解

HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599) -↓文本表格摘自菜鸟教程:

ps:最常见的HTTP状态码为200、300、404、500、502等

03 session和Token详解

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自动化测试/测试开发,走向高薪之路。

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!

测试主管面试必问合集:get 与 post 的区别相关推荐

  1. 测试工程师面试必问的十道题目!全答上来的直接免试

    最近参加运维工程师岗位的面试,笔者把自己遇到的和网友分享的一些常见的面试问答收集整理出来了,希望能对自己和对正在准备面试的同学提供一些参考. 一.Mongodb熟悉吗,一般部署几台? 部署过,没有深入 ...

  2. expires为session_面试必问:session,cookie和token的区别

    点击上方蓝字关注我们 ! session,cookie和token究竟是什么 简述 cookie,session,token作为面试必问题,很多同学能答个大概,但是又迷糊不清,希望本篇文章对大家有所帮 ...

  3. 2023测试岗面试必问13题(你是在等通知还是拿offer呢?)

    面试题1:请先简单做一下自我介绍? 等通知的回答: 你好,面试官,我叫xx,我来自长沙,大学在上海就读,现在在xx公司从事测试2年,做过很多项目,性格开朗.. 拿offer的回答: 你好,我叫XX,2 ...

  4. TCP/IP面试常问合集,JavaWeb内容及HTTP协议

    1. TCP/IP 1.1 传统的OSI(Open System Interconnection)参考模型是7层:应用层.表示层.会话层.传输层.网络层.数据链路层.物理层.而TCP/IP是5层参考模 ...

  5. 看完946页“JAVA高级架构面试必问”,金九银十社招全拿下

    前言 我本科毕业后在老东家干了两年多,老东家算是一家"小公司"(毕竟这年头没有 BAT 或 TMD 的 title 都不好意思报出身),毕业这两年多我也没有在大厂待过,因此找坑的时 ...

  6. linux驱动工程面试必问知识点

    linux内核原理面试必问(由易到难) 简单型 1:linux中内核空间及用户空间的区别?用户空间与内核通信方式有哪些? 2:linux中内存划分及如何使用?虚拟地址及物理地址的概念及彼此之间的转化, ...

  7. 面试必问问题最佳答案

    面试必问问题最佳答案 1.请你自我介绍一下自己 回答提示:一般人回答这个问题过于平常,只说姓名.年龄.爱好.工作经验,这些在简历上都有.其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能.最 ...

  8. 中山市事业编计算机类专业知识题目,中山大学计算机历年复试面试考研试题合集(4)...

    中山大学计算机历年复试面试考研试题合集(4)本站小编 免费考研网/2019-12-09 puts   (substr); n=findStr(str,substr); printf   ( " ...

  9. 互联网公司面试必问的Redis题目

    https://juejin.im/post/5b99d4bce51d450e7a24b66e#heading-0 Redis是一个非常火的非关系型数据库,火到什么程度呢?只要是一个互联网公司都会使用 ...

最新文章

  1. Linux环境安装python3.6(APT方式)
  2. 干粮 -- 计算机程序设计艺术(The Art of Computer Design) - 2
  3. 网络基础:计算机网络由基础到深入常用知识集锦!
  4. NS2相关学习——在ns中模拟无线场景
  5. Indian Buffet Process(印度自助餐过程)介绍
  6. java 13个核心技术3
  7. azure_面向初学者的Azure Data Explorer
  8. 你越努力,编程水平越差!这样学 Python ,更容易成为高手!
  9. python selenium2 动态调试
  10. 计算机无法进系统咋办,详解电脑无法进入系统怎么办
  11. 如何高效地学习机器学习算法?
  12. Vue 简单人脸识别
  13. kubernetes networkpolicy网络策略详解
  14. python爬取boss直招_简易python爬虫爬取boss直聘职位,并写入excel
  15. Android 图片选取画图案
  16. 电脑怎么写入便签并同步到手机版便签上?
  17. 循环函数:while循环和for循环及函数定义
  18. 九大PPT制作伴侣【神器】
  19. 使用注册表编辑win10鼠标右键菜单,详细解释(右键文件夹、文件以及右键空白区域下三种情况)
  20. 阿里 postgresql mysql_如何将PostgreSQL与MySQL相结合,实现1+12的组合拳?(下)-阿里云开发者社区...

热门文章

  1. 华为手机计算机怎么开声音,怎么录音频-录屏录不到声音?华为的录屏功能了解一下!这才是正确的打开方式...
  2. Transformer,bert—t for transformers
  3. 淘宝新店没有流量怎么回事
  4. C/C++中的str系列函数大全
  5. 重阳重游万州文峰塔记
  6. 基层管理者的第一步——从“我”变成“我们”
  7. uniapp+egg.js获取微信步数(wx.getWeRunData)
  8. 【并发】Amdahl's Law 阿姆达尔定律
  9. 2019---高考加油!!!
  10. 解释源代码文件、目标代码文件和可执行文件之间的区别