一、初识Fiddler
①BS架构简介和请求过程理解
②Fiddler原理
Fiddler是一个代理服务器。代理地址:127.0.0.1,端口:8888。浏览器可以通过设置查看代理服务器:设置->高级->打开您计算机的代理设置->连接->局域网设置->代理服务器->在高级中就能看到代理地址:127.0.0.1和端口:8888
当浏览器向服务器请求数据时,被Fiddler截获,截获后再发送给服务器,当服务器向浏览器响应数据时,同样会被Fiddler截获,然后再发送给浏览器,所以我们能够在Fiddler中看到请求的报文和响应的报文。
关掉Fiddler、代理服务器会自动取消。如果Fiddler非正常退出,因为Fiddler没有自动注销,可能会造成网页无法访问。解决的办法是重新启动Fiddler。
③Fiddler安装
- Fiddler官网下载地址:https://www.telerik.com/fiddler
- Fiddle证书生成器下载地址:http://www.telerik.com/docs/defaultsource/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2
- Fiddler安装注意事项:不要安装在有中文和特殊字符的目录。
④Fiddler菜单栏
⑤Fiddler工具栏
⑥Fiddler状态栏和Quick Exec
二、HTTP协议
①HTTP协议概述
- HTTP(Hyper Text Transfer Protocol): 全称超文本传输协议,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
- HTTP 是一种应用层协议,是基于 TCP/IP 通信协议来传递数据的,其中 HTTP1.0、HTTP1.1、HTTP2.0 均为 TCP 实现,HTTP3.0 基于 UDP 实现。现主流使用 HTTP1.0 和 HTTP3.0
- 协议: 为了使数据在网络上从源头到达目的,网络通信的参与方必须遵循相同的规则,这套规则称为协议,它最终体现为在网络上传输的数据包的格式。
- HTTP报文:
它是HTTP应用程序之间发送的数据块
。这些数据块以一些文本形式的元信息开头,这些信息描述了报文的内容及含义,后面跟着可选的数据部分。这些报文都是在客户端、服务器和代理之间流动。注意: 当我们访问一些网页时,是显示通过 HTTPS 来进行通信的,并且当下大多数的网页都是通过 HTTPS 来进行通信的,因为 HTTPS 在 HTTP 的基础上做了一个加密的工作
②HTTP协议请求报文详解
请求报文:从客户端发往服务器的报文叫请求报文。
HTTP的请求报文由四部分组成:请求行(request line)、请求头部(header)、空行和请求数据(request data)
请求行
由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。
例如:GET http://jsuacm.cn/template/jsu/css/modifypage-1.css HTTP/1.1
请求方法
URL
- URL:统一资源定位符,是一种资源位置的抽象唯一识别方法。
- 组成:<协议>://<主机>:<端口>/<路径>
- 端口和路径有事可以省略(HTTP默认端口号是80)
HTTP协议版本
协议版本的格式为:HTTP/主版本号.次版本号,常用的有HTTP/1.0和HTTP/1.1,现在最常用的是1.1
HTTP 1.0和HTTP 1.1的主要区别是什么?
- 长连接 :在HTTP/1.0中,默认使用的是短连接,也就是说每次请求都要重新建立一次连接。HTTP1.1起,默认使用长连接 ,默认开启Connection: keep-alive
- 带宽优化及网络连接的使用:
HTTP1.0中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。
- Host域:HTTP1.0是没有host域的,HTTP1.1才支持这个参数。
- 错误状态响应码:在HTTP1.1中新增了24个错误状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。
- 缓存处理:
在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略。
请求头
请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔。请求头部通知服务器有关于客户端请求的信息
空行
请求头部的最后会有一个空行,表示请求头部结束,接下来为请求数据(请求体)。
请求体(请求数据)
请求数据不在GET方法中使用,而在POST方法中使用
③HTTP协议响应报文详解
三、进一步认识Fiddler
①Session List会话列表
②FiddlerStatistics统计分析
③Fiddler-Inspector检查器
④AutoResponder自动响应器
⑤Fiddler-Composer设计器
⑥Fiddler-Filter过滤器
⑦Fiddler-断点应用
⑧Fiddler-弱网测试
⑨设置Fiddler捕获HTTPS流量
⑩捕获FirefoxHTTPS流量
Android APP抓包详解
Fiddler-IOS APP抓包详解
Fiddler-Willow插件安装