Fiddler 详细教程【原理、界面介绍、浏览器和移动端抓包详解】

一. 简介:

        Fiddler(中文名称:小提琴)是一个HTTP的调试代理,以代理服务器的方式,监听系统的Http网络数据流动, Fiddler可以也可以让你检查所有的HTTP通讯,设置断点,以及Fiddle所有的“进出”的数据(我一般用来抓包),Fiddler还包含一个简单却功能强大的基于JScript .NET事件脚本子系统,它可以支持众多的HTTP调试任务。


Fiddler官方网站提供了大量的帮助文档和视频教程,这是学习Fiddler的最好资料:

Fiddler_官方网站
Fiddler_官方文档
Fiddler_官方视频
Fiddler_官方插件


二. 工作原理:

在这里插入图片描述
        Fiddler是以代理WEB服务器的形式工作的,浏览器与服务器之间通过建立TCP连接以HTTP协议进行通信,浏览器默认通过自己发送HTTP请求到服务器,它使用代理地址:127.0.0.1,端口:8888. 当Fiddler开启会自动设置代理, 退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。

三. HTTP协议简介:

3.1 什么是HTTP协议

协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器,目前我们使用的是HTTP/1.1 版本。

3.2 URL详解

URL(Uniform Resource Locator) 地址用于描述一个网络上的资源, 基本格式如下
schema://host[:port#]/path/…/[?query-string][#anchor]
名称	解释scheme	指定低层使用的协议(例如:http, https, ftp)host	HTTP服务器的IP地址或者域名port#	HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如 http://www.test.com:8080/path	访问资源的路径query-string	发送给http服务器的数据anchor	锚

3.3 HTTP消息的结构
  • Request 部分
    HTTP_1
    先看Request 消息的结构, Request 消息分为3部分,第一部分叫Request line, 第二部分叫Request header, 第三部分是body. header和body之间有个空行
    第一行中的Method表示请求方法,比如"POST",“GET”, Path-to-resoure表示请求的资源, Http/version-number 表示HTTP协议的版本号,当使用的是"GET" 方法的时候, body是为空的
    HTTPHead_1

  • Response部分
    HTTP_2
    我们再看Response消息的结构, 和Request消息的结构基本一样。 同样也分为三部分,第一部分叫Response line, 第二部分叫Response header,第三部分是body. header和body之间也有个空行
    HTTP_2

3.4 状态码

Response 消息中的第一行叫做状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。
状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response.
HTTP/1.1中定义了5类状态码, 状态码由三位数字组成,第一个数字定义了响应的类别
在这里插入图片描述

  • 200 OK:
    最常见的就是成功响应状态码200了, 这表明该请求被成功地完成,所请求的资源发送回客户端
    StateCode_1

  • 302 Found:
    重定向,新的URL会在response 中的Location中返回,浏览器将会自动使用新的URL发出新的Request

例如在IE中输入, http://www.google.com. HTTP服务器会返回302, IE取到Response中Location header的新URL, 又重新发送了一个Request.
StateCode_2

  • 304 Not Modified:
    代表上次的文档已经被缓存了, 还可以继续使用,例如打开博客园首页, 发现很多Response 的status code 都是304
    [提示: 如果你不想使用本地缓存可以用Ctrl+F5 强制刷新页面]
    StateCode_3

  • 400 Bad Request: 客户端请求与语法错误,不能被服务器所理解

  • 403 Forbidden: 服务器收到请求,但是拒绝提供服务

  • 404 Not Found:
    StateCode_4

  • 500 Internal Server Error: 服务器发生了不可预期的错误

  • 503 Server Unavailable: 服务器当前不能处理客户端的请求,一段时间后可能恢复正常

四. 界面操作:

4.1 主界面

在这里插入图片描述
Fiddler的主界面分为 工具面板、会话面板、监控面板、状态面板,下面进行一一介绍。

4.2 工具面板

在这里插入图片描述

  • 说明:
    注释、重新请求、删除会话、继续执行、流模式/缓冲模式、解码、保留会话、监控指定进程、寻找、保存会话、切图、计时、打开浏览器、清除IE缓存、编码/解码工具、弹出控制监控面板、MSDN、帮助

  • 两种模式:
    缓冲模式(Buffering Mode)
    Fiddler直到HTTP响应完成时才将数据返回给应用程序。可以控制响应,修改响应数据。但是时序图有时候会出现异常

    流模式(Streaming Mode)
    Fiddler会即时将HTTP响应的数据返回给应用程序。更接近真实浏览器的性能。时序图更准确。但是不能控制响应。
    在这里插入图片描述

4.3 会话面板

会话面板
在这里插入图片描述

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值