HTTP协议格式及 fiddler 的使用

HTTP是一种广泛使用的应用层协议,具有很强的可定制性。Fiddler作为HTTP抓包工具,通过代理方式捕获客户端和服务器的数据交互。在Fiddler中,用户可以查看HTTP请求和响应的详细信息,包括首行、报头、空行和正文。HTTP请求和响应均包含四个部分,对于响应,可能需要解压以查看原始内容。
摘要由CSDN通过智能技术生成

简述 HTTP 协议

HTTP 协议是个使用非常广泛的应用层协议, 应用层协议通常是需要 “自定义协议” 的, 自定义协议可以基于现有协议进行定制, HTTP 之所以应用广泛就是因为其可定制性非常强.

日常生活中遇到 HTTP 的场景 :

  1. 使用浏览器打开一个网页
  2. 手机app加载数据.
  3. 微信支付宝小程序.
  4. 游戏中的界面.

HTTP 是 “一问一答” 形式的协议, 也就是客户端发送一个请求, 服务器响应一个回答.
HTTP 是一个文本格式的协议, 要想看到它的协议格式, 还得借助一些外部工具来展现出来, 我们可以通过抓包工具来获取到 HTTP 协议.

fiddler(抓包工具) 的使用

抓包工具就相当于一个代理, 每当客户端和服务器数据进行交互时, 都要先经过它, 我们就可以在抓包工具上查找到需要的数据包.
这里我们使用 fiddler 来抓包(fiddler 专注于 http, 使用简单), 原理图如下 :

在这里插入图片描述
我们下载好 fiddler 后, 首先要勾选这几个框 :
在这里插入图片描述
在设置过程中, 会弹出一个对话框, 点击 “是”, 就可以进行抓包了.

fiddler 作为一个代理, 可能会与电脑上其他代理起冲突, 比如一些浏览器插件, 加速软件啥的.
进入fiddler 可以看到 :
在这里插入图片描述
左侧显示已经抓到的包的列表, 列表中的内容是时刻更新的, 因为电脑时不时的就在发送网络请求.

那我们如何查找要抓的包呢?
就以访问百度为例 : https://www.baidu.com/
在这里插入图片描述
可以看到仅仅一个请求, 就出现了这么多数据包, 具体如何查找呢?

  1. 先看颜色, 黑色响应的是普通数据; 蓝色响应的是 http. 我们关注蓝色.
  2. 再看域名 : https://www.baidu.com
  3. 再看响应长度的数据长度, 一般找数据长度比较长的.

再看上图, 发现巧了第一个就是了, 双击它, 就会显示详情, 右上角是请求, 右下角是响应.
首先我们勾线 Raw, 显示出最原始的 http 请求的数据包, 看不清也可以点击右下角的按钮放大来看.
在这里插入图片描述
可以看到, 这就是一个完整的 http 请求, 它是文本数据,
在这里插入图片描述
其实所谓的 http 请求, 就是通过代码构造出一个 http 格式的字符串, 再写入 tcp 的 socket 中就行了.

协议格式

一个 HTTP 请求数据, 包含了四个部分.

  1. 首行 :
    在这里插入图片描述

  2. 报头(header) :

在这里插入图片描述
3. 空行: 这里截图体现不出来, 可以自己观察一下.

在这里插入图片描述
4. 正文(body) : 空行后面的内容, 有时候可以没有.(这里没有)

来看响应 :
注意 : 响应可能是压缩过的(压缩过的显示是二进制), 压缩可以减少网络传输的数据量, 节省带宽. 把数据压缩本质上是用 cpu 资源换带宽资源.
所以得先解压, 再点击 Raw.
在这里插入图片描述
这样就得到了 HTTP 响应 :
在这里插入图片描述
同样的 HTTP 响应也分四个部分 :

  1. 首行 :
    在这里插入图片描述

  2. 响应报头(header) :
    在这里插入图片描述

  3. 空行 :
    在这里插入图片描述

  4. 正文(此处正文是 html 代码)

在这里插入图片描述

浏览器拿到 HTTP 响应的 html 了, 就可以显示了.

其实拿到的不仅仅是 html, 还有 css, js 等浏览器能显示出来的内容, 这些都是来自于服务器, 都是服务器返回的响应带给浏览器的.

总结 :

HTTP 请求及响应格式如下 :
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随风的浪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值