Charles简介:
Charles主要功能包括:
(1)截取http和https网络封包
(2)支持重发网络请求,方便后端调试
(3)支持修改网络请求参数
(4)支持网络请求的截获并动态修改
(5)支持模拟慢网速
Charles的工作原理:
charles是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888.当charles打开的时候它会自动对操作系统设置代理,使之后操作系统上的浏览器发送http协议请求都需要经过charles代理去发送,以及服务器返回的数据也是如此,当charles退出的时候代理会自动取消。
Charles安装:
官方网址:Download a Free Trial of Charles • Charles Web Debugging Proxy
破解网址:Charles破解工具
常用功能键介绍:
扫把按钮:点击之后可清除抓取到的所有请求
红色按钮:红色亮起说明正在抓取请求,红点展示为灰色说明目前不在抓取请求状态
锁按钮:开启/关闭ssl proxying 即开启/关闭 https抓包
乌龟按钮:灰色乌龟是网速设置正常,绿色乌龟只开启慢速网络
六角形按钮:断点图标,灰色说明断点未开启,红色说明在使用断点
钢笔按钮:编辑请求,点击之后选中的请求会被再次发送
打钩按钮:验证选中的请求的响应
扳手按钮:常用功能,包含了Tools菜单中的常用功能
设置按钮:常用设置,包含了Proxy菜单中的常用设置
左侧请求列表栏:
(1)Structure视图是将网络请求按访问的域名分类
(2)Sequence视图是将网络请求按访问的时间排序
设置Charles代理:
前置条件:需要设为代理的计算机与个人计算机需要在同一网段(可以ping通)
(1)代理机设置:
双击打开Charles工具
点击Proxy--Proxy Setting,将两个勾√上
(2)客户机设置:
打开谷歌浏览器--点击最右侧的三个点-- 点击“设置”--选择“系统”中的“打开您的计算机代理设置”
在“手动设置代理”的地址框中,将IP地址替换成代理机的IP地址
例:http=192.169.0.148:8888;https=192.168.0.148:8888
再点击保存按钮
注:此时代理机会有一个弹窗,需要代理机选择allow(允许),客户机才能够进行上网操作,同时之后客户机的所有网上操作都会被代理机所抓取监控到。
设置抓取HTTPS协议包:
1.安装Charles的HTTPS证书到电脑的受信任区域
(1)双击打开Charles工具
点击菜单栏的help--SSL Proxying--Install Charles Root Certificate
(2)安装证书
点击安装证书...在弹出的证书导入向导中选择“本地计算机”,点击下一步。
选择“将所有的证书都放入到下列存储”,点击浏览,在弹窗中选择“受信任的根证书颁发机构”,点击确定,再点击下一步。
(3)设置端口号
在Proxy菜单下选择SSL Proxying Setting...,在SSL Proxying选项卡中的左侧点击Add,在Host中输入 * ,在Port中输入443,点击OK,再点击OK即可。
(4)确保 “锁” 保持 锁住的状态
过滤设置:
如果不进行过滤设置,打开抓包工具进行工作时,会抓取到非常多的包,不容易找到自己需要抓取的包,因此在要抓取需求的包时,要进行过滤设置。
过滤设置操作步骤:
(1)点击Proxy--Rcording Setting...
在弹出的Recording Setting对话框中选择Iclude选项卡,点击Add,在Protocol选择http / https协议,在Host填写主机地址,在Port填写端口号。点击OK
(2)注意网址前面的√要勾上,再点击OK即可。
(3)这样子就能只抓取到该网址的包了,如果需要其他网址的包,重复上述动作再将其他网址加入即可。包的过滤在Sequence查看
HTTP协议的组成:
URL分析:
https://www.baidu.com/s?ie=utf-8&mod=1&isbd=1&isid=BB86507182278093&ie=utf-8&f=8&rsv_bp=1&rsv_idx=2&tn=baidutop10
协议类型:http /https
主机地址:www.baidu.com
请求地址:/s (请求地址一定是以 / 开头的) 请求地址代表了网站的不同功能,地址不同,功能不同
URL参数:ie=utf-8&mod=1.. URL参数放在?后面,多个参数使用&作为分隔符
参数名1=参数值1&参数名2=参数值2&参数名3=参数值3&...
参数是可选的,不是非必要的.
请求:
请求行:GET / HTTP/1.1
GET:请求类型(请求方法) 请求类型有10多种,最常用的有GET、POST、AUTO...
GET作用:向服务器请求网站资源
POST作用:向服务器提交数据
/ : 请求地址(接口地址):不同的请求地址,功能不同
请求头:
请求头是由多个键值对构成的,每行一对,关键字和值用英文冒号分割。请求头可以告诉服务器客户端请求的信息
User-Agent:产生请求的浏览器类型
Accept:客户端可识别的内容类型列表
Host:请求的主机名,允许多个域名同处一个IP地址,即虚拟主机
Content-Type:请求的MIME类型。MIME类型:描述消息内容类型的因特网标注,常见的有application/jaon 、image/jpeg、application/octet-stream等
请求正文:
向服务器提交的请求数据,GET请求的参数一般是放在请求行后的键值对,post请求的参数类型多样(表单、JSON、XML、图片等)
响应:
响应行:HTTP/1.1 200 OK
HTTP协议1.1版本 200 状态码 OK 响应状态(是对响应状态码的英文翻译)
响应状态码由三位数字组成,第一个数字定义了响应的类别,且有5种可能取值
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
响应头:
服务端回复请求时,携带的参数告诉客户端==相当于给客户端一个反馈
常见的响应头:
content-Length:表示内容长度
content-Type:表示后面的文档属于什么MIME类型
Server:服务器通过这个头告诉浏览器服务器的类型
响应正文:
请求获取到的最终结果(这个结果返回到浏览器)