目录
fiddler的用法
什么是fiddler
fiddler是一个抓包工具,fiddler是专门用来对http和tttps抓包的,从抓来的包里我们可以知道http协议的基本格式
对fiddler进行安装

找到Fiddler Classic,这个版本免费,然后点击Try Free

填好邮箱和国家进行下载就行
fiddler的配置
打开fiddler后,点击Tools中的options,然后选择HTTPS,将所有条件都选中

此时会要你下载一个证书,点击yes进行下载,之后就可以正常使用了
HTTP请求和回应
此时在浏览器上打开一个搜狗主页,fiddler的左边就会出现对应的包,将其选中


请求
然后右上角就是请求,先点击Raw,就可以看到请求格式和内容,然后点击View in Nottped,在记事本中观看

首先可以看到,这是一个文本数据,是一个完整的HTTP请求
所谓的HTTP请求,其实就是通过代码,构造一个符合HTTP格式要求的自字符串,让tcp往socket中写就行了
一个HTTP请求数据,包含了4个部分:
首行,header,空行,正文(body)

空行是header结束的标记,而正文是空行后面的内容,有的时候可以没有,这里就是没有
HTTP协议的基本格式
回应
右下角是回应,先点击raw,然后可以看到是二进制文本
然后点击上面的Response进行解析,就得到了回应的http
首行

GET是HTTP的方法,描述了这个HTTP请求想干啥,HTTP协议中有
很多种方法,不同的方法,表示不同的语义

在这里咱们一般看到的请求大部分都是GET请求,小部分是POST请求,而其余的则是很少见了
当我们登录或者上传文件时就能看到POST请求
1.GET习惯上用来表示获取一个数据,POST用来表示提交一个数据
2.GET一般没有body,需要携带数据则放到URL中,POST一般有body
3.GET请求通常会设计成幂等的,POST则无要求
幂等就是,每次发送一个请求,得到的回复是相同的值,设计成幂等之后,这样的请求就可以缓存了
4.GET可缓存的(前提是幂等),POST则不能
5.GET请求可以被浏览器收藏,POST不能
GET和POST没有本质上的区别,但是我们在使用的习惯上存在区别,这也是一个经典面试题:
GET和POST表示的是不同的语义,但是实际上也并非需要严格遵守
http方法的语义,只有一种建议,我们实际使用的时候,不一定非得遵守
对于body,有没有的问题也不是绝对的,GET也可以有,POST也可以没有,这是比较少见
![]()
对于后面的URL来说,结构大概是这几个部分

![]()
这个就是使用的http版本号了

请求头header

键值对结构,每个键值对占一行,键和值之间,使用冒号空格来分割
这样的键值对可以有N行,会用空行作为结束标记
header中的键值对,大部分都是HTTP协议规定的,当然这里也是可以添加自定义的键值对
![]()
Host属性,描述了浏览器这个请求要访问的服务器是谁,这里不仅只写地址,也写端口号
大多数情况下,Host中的值,和URL中的域名是一致的但是当我们访问的服务器不是直接访问,而是通过"代理"来访问,此时的Host和URL就可能不一致了
Content-Length:描述了body的长度(字节)
![]()
Content-Type:描述了body的数据格式
![]()
body:

可以发现,此时的body就是css
除了text/css,还有一些别的写法:
application/json
application/x-www-form-urlencoded
text-html
application/javascript
image/jpg
img/png
type是哪种,对应的body就是哪种格式
比如是application/json,body就是一个js
user-Agent(简称UA)
主要就是描述了浏览器是啥版本,系统是啥版本
![]()
操作系统版本:win10系统64位
可能win11和win10是一样的内核版本,所以win11系统发送这里也会显示win10
![]()
浏览器版本:Chrome/113.0.0.0
Referer
描述了当前这个页面,从哪个页面跳转来
如果直接在地址栏输入url(或者收藏夹点击),此时请求中没有referer
但如果是从搜狗中输入,就可以看到referer就是sougou主页
![]()
Cookie

Cookie的值也是键值对,键值对之间使用;分割,键和值 之间使用=分割
这里的键值对是程序员自定义的数据,不同的网站就有不同的键值对,也就有不同的含义和用途了,所以具体是啥含义咱也不知道.
Cookie的本质,是浏览器在本地储存 用户自定义数据的一种关键机制
Cookie从哪里来?
从服务器来,当我们的浏览器访问服务器的时候,服务器就会在HTTP响应中,通过Set-Cookie字段,把Cookie的键值对返回给浏览器,浏览器收到这个数据,就会在本地存储
Cookie到哪里去?
会在下次请求的时候,把Cookie带给服务器,Cookie在浏览器这边只能算是暂存,真正要让这个数据发挥作用,还得由服务器来使用
Cookie有啥用?
是浏览器本地储存数据的机制
任何想存的数据都行(前提是得是字符串)
由于Cookie存储空间有限,一般也不会用Cookie存太大的数据
由于客户端有很多,每个客户端提供的服务可能还不一样,因此服务器就可以通过cookie进行区分
比如客户端在登录的时候,服务器就识别好客户端的角色,把角色信息返回给浏览器,在cookie中保存,后续客户端访问的时候,带着这个cookie就行了,此时服务器之间就自动这个客户端是干啥的了

625

被折叠的 条评论
为什么被折叠?



