既有适合小白学习的零基础资料,也有适合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]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
图片转存中…(img-QFpueCVp-1715366806641)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!