以上截图均来自柠檬班fiddler公开课,笔记为学习时自己记的笔记
请求报文
请求由三/四部分组成:请求行、请求头、空一行(、请求体)
以fiddler抓包的bilibili请求为例
<!--请求行-->
GET https://www.bilibili.com/ HTTP/1.1
<!--请求头-->
Host: www.bilibili.com
Connection: keep-alive
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
请求行
请求行由3部分组成,请求方法、URL以及HTTP协议版本
请求方法
http请求方法有:Get, post, head, put, delete, options, trace几种。
URL 统一资源定位符
端口(默认端口80可以不写)
tomact:8080
MySQL:3306
e.g.
https://www.baidu.com/s?wd=柠檬班
分解:
https:协议
www.baidu.com:百度的主机
/s:具体的资源的路径,请求的搜索接口
?:携带参数用的
wd=柠檬班:搜索的名字是柠檬班
请求头
服务器需要的信息,下面是常用信息
- 解码时如果没有提示Click to decode,则是字符集错乱导致的乱码
- 如果fiddler要自定义请求头
到fiddler中
重新Execute一下,就可以在新的请求中看到自定义请求内容
响应报文
响应报文也由三/四部分组成:响应行、响应头、空行(、响应体)
以bilibili主页为例(部分)
HTTP/1.1 200 OK
Date: Tue, 15 Nov 2022 10:30:24 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
support: nantianmen
Set-Cookie: innersign=0; path=/; domain=.bilibili.comGMT; domain=.bilibili.com
Vary: Origin,Accept-Encoding
Expires: Tue, 15 Nov 2022 10:30:23 GMT
Cache-Control: no-cache
X-Cache-Webcdn: MISS from blzone13
X-Cache-Time: 0
X-Save-Date: Tue, 15 Nov 2022 10:30:24 GMT
Content-Length: 967454
响应行
由两部分组成:HTTP协议以及状态码+状态原因
状态码
常见的状态码
100:一般是一种中间状态
200:见过最多的状态,表示请求成功被处理
304:表示重定向,服务器没有更改
5XX:服务器的错误,是比较严重的错误
响应头
也是来自服务器的附加信息,开发人员可能会定制信息
set-cookie:服务器返回的文本要保存到本地,下次请求需要带上
last-modified:最后一次修改时间,若发现没有修改资源则可以直接重定向
响应体
可以在接口测试的时候检查发出的请求有没有被正常处理,测试用例的执行有没有通过