2024年软件测试最全接口测试--理论篇+JSON基础(详解)_json接口,2024年最新已拿offer入职

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

HTTP组成

http消息类型有两种:

1. 请求:由客户端发送,用来触发一个服务器上的动作

请求由三个部分组成:请求行、请求头、请求体

2. 响应:来自服务器的应答

响应也由三个部分组成:状态行、响应头、响应正文

请求行

我们先来说说请求行:一般指的是请求包中的第一行内容

通常包含:

1. 请求方法( request method ):重点(get/post/head…)

2. 请求路径( request path ):就是URL的PATH部分

3. 协议版本(protocol/version):包括协议和版本号HTTP…

请求头

请求头部:紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息, 主要是为了去完成通信的控制

请求头的名称一般都是由http协议提前约定好的,具有通信效果,一般不能自定义

请求体

请求主体。是指第一个空行之后的内容,可以添加任意的数据。

这里的空行是必须的,一般来说body就是空的。post方法才会产生body内容。

HTTP响应组成

HTTP响应也由四个部分组成:

1. 状态行(response line)

2. 消息报头/响应头( response header )

3. 空行

4. 响应正文/响应报文(response body)

状态行

通常就是响应数据包中的第一行。由HTTP协议/版本号, 状态码, 状态消息三部分组成。

状态码

由三位数字组成,第一个数字定义了响应的类别,共分五种类别1**,2**,3**,4**,5**。

其中1**代表信息,服务器收到请求,需要请求者继续执行操作。

2**代表请求成功,操作被成功接收处理。

3**代表重定向,需要进一步的操作以完成请求。

4**客户端错误,请求包含语法错误或无法完成请求。

5**服务器错误,服务器在处理请求的过程中发生了错误。

我们来看看常见的状态码:

常用的状态码这些,还有许多不是常用的这里就不一一做介绍了,有兴趣的朋友可以加博主的微信,一起发你了解。

响应头

第二行和第三行为消息报头,用来说明客户端要使用的一些附加信息。例如 服务器类型,响应报文格式。

这里会告诉你响应的时间,采用什么样的数据类型等详细信息。响应头会有很多的参数,每种参数代表的意思也各不同,能看懂个大概也是不错的。

响应正文

空行后面的html部分为响应正文。表示服务器返回给客户端的文本信息,这里也有必须值得注意的地方就是消息报头后面的空行是必须的,即使第四部分的返回数据为空,也必须有空行

这里看的是CSDN的抓包,html部分都是属于响应正文的部分

HTTP无状态

http协议本身是无状态的,但是在实际的web开发中常有一些操作需要有状态。比如想要 访问一些私人访问权限的文章,或者这种操作需要明确当前用户身份。为了解决无状态带来的鉴权问题,一般有以下几种解决方 案:cookie、session、token。

Cookie

是储存在客户端的一串字符,一般说来大小不超过4kb。比如我们常见的记住密码功能,或者 一些基于之前输入的提醒和默认配置,就是通过cookie来实现的。

cookie简单说来就是一种本地存储方法。但是这里存储的信息常用来进行鉴权操作。

cookie只能保存文本信息,浏览器可以禁止cookie。cookie的期限可以被自由设定,可以是仅仅一次浏 览起效,也可以长达一年。如果是短期的,那么这些信息会被存储在内存中,如果是长期则会存储在硬盘上。

注意:

单纯的采用cookie来认证身份会带来一个比较麻烦的问题,就是伪造比较容易。因为这样处理, cookie中必然要带有身份信息,但是服务器也要解析这个身份信息,所以必然要在原理上支持双向的 编码和解码,那么这个信息很容易被破解和进一步伪造。

Session

如果想要解决上述cookie伪造的这个问题,我们常用的方案应该是加一个secret,而这个secret应该是 放在服务器上的,服务器返回这样一个带有secret编码的字符串,而在服务器端再带上这个secret反 向解密,如此一来,问题不就解决了,这个就是我们要讲的第二个对象:session。

session是保存在服务器端的,是跟踪用户的一种上下文保持的机制。当服务器创建了一个session时, 就给客户端发送的响应头中包含了set-cookie字段。浏览器会将set-cookie的字段信息,将其保存在本地,并且之后发送的请求报文都包含了cookie,cookie中包含了set-cookie返回的字段值。

Session也可以设定有效时间。

Token

访问令牌access token,用于接口中,用于标识接口调用者的身份、凭证。简单来说就是不要登录。

目的:减少用户名和密码的传输次数

token类型:

1. API Token(接口令牌):用于访问不需要登录的接口

2. USER Token(用户令牌):用于访问需要用户登录之后的接口

3. Token的实效性:token可以是一次性的、也可以在一段时间范围内是有效的

4. Token一般放在请求头headers或者body参数里面。

一般在接口文档会有说明

Token鉴权流程

1. 客户端使用用户名跟密码请求登录

2. 服务端收到请求,去验证用户名与密码

3. 验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端

4. 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里

5. 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token

6. 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回 请求的数据

JSON

什么是JSON?

JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation),JSON是轻量级的文本数据交换格式(数据传递)–xml

JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,JSON 解析器和 JSON 库支持许多不同 的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。

语法规则

JSON 语法是 JavaScript 对象表示语法的子集。

1. 数据在名称/值(键值对)对中 如 {“name” : “zs”}

2. 数据由逗号分隔 如 {“name” : “zs” , ”age”:”18”}

3. 大括号保存对象 如 {“name” : “zs” , ”age”:”18”}

4. 中括号保存数组 如 {“score” : [100,80,90]

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

图片转存中…(img-QFpueCVp-1715366806641)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 24
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值