五、关于网页打开过程(父请求、子请求)、Fiddler选择请求、设置断点、修改请求、修改响应、伪造Referer
一、网页如何打开
1.一个网页的组成
打开一个网页,其实需要浏览器发送很多个Request;下面简单描述一下这个过程:
(1)在浏览器输入https://blog.****.net
(2)浏览器首先发送一个http请求去获取页面布局的HTML,此请求称为“父请求”。然后服务器把HTTP响应发回给浏览器。
(3)接下来,浏览器对HTTP响应中的HTML进行解析。若发现HTML中引用了很多其他文件,比如图片、css文件、JS文件、JSON文件等;浏览器会自动再次发送多个HTTP请求,去获取这些个文件。这些请求称为“子请求”。
(4)最后,浏览器将这一个“父请求”加上多个“子请求”所返回的响应渲染出来,这样就形成了一个页面,显示出来。
一般情况下,网页都会使用AJAX技术,使得页面可以实现部分刷新。如果不采用AJAX技术,那么某个子请求加载速度慢就会影响整个网页的加载速度。
二、用Fiddler选择请求
1.用Fiddler选择子请求。步骤:先找到父请求--->鼠标右键--->Select--->Child Requests,即选中所有的子请求;
结果:
2.用Fiddler选择父请求。步骤:找到任何一个子请求--->右键--->Select--->Parent Requests,即:选择了父请求。
3.用Fiddler选择相同的请求。步骤:选择一个请求--->右键--->Select--->DuplicateRequests,即:选择相同的请求。
三、Fiddler设置断点,修改HTTP报文
断点的种类:1.全局断点,即拦截全部的请求; 2.单个断点,即只拦截输入的链接;根据是想修改HTTP请求还是修改HTTP响应,又可选择before Requests 和 After Responses
3.1Fiddler设置断点,修改HTTP请求(需要设置断点为before Requests)
设置方式:
全局断点的设置方式:菜单栏Rules-->Automatic Breakpoint--->Before Requests,这样方法会拦截所有的会话。
取消全局断点的方式:菜单栏Rules-->Automatic Breakpoint-->Disabled;
单个断点的设置方式:在Fiddler左下角QuickExec命令行输入命令:bpu url 如:bpu www.baidu.com
单个断点的取消方式:在Fiddler左下角QuickExec命令行输入命令:bpu
以访问****,设置断点抓包后,修改请求为baidu为例子:
点击【run to completion】按钮后:
若点击【Break on Response】,可以看见session列表中的url没有变,再点击【run to completion】按钮,此时可以看见session列表中的url变为了修改的链接。
3.2Fiddler设置断点,修改HTTP响应(需要设置断点为 After Responses)
全局断点的设置方式:菜单栏Rules-->Automatic Breakpoint--->After Responses,这样方法会拦截所有的会话响应。
取消全局断点的方式:菜单栏Rules-->Automatic Breakpoint-->Disabled;
单个断点的设置方式:在Fiddler左下角QuickExec命令行输入命令:bpafter url 如:bpu www.baidu.com
单个断点的取消方式:在Fiddler左下角QuickExec命令行输入命令:bpafter
以修改网页标题为例:设置after breackpoint 后,修改http响应报文,然后点击【run to response】放行。
补充:
1.修改http报文不管是请求报文还是响应报文,都必须在Raw栏里面;
2.伪造Referer:在HTTP协议Header介绍中 ,说过请求头中的Re'ferer主要是让服务器判断来源页面,若没有Referer,有些网站会判断是盗链,阻止访问。你可以通过Fiddler,设置断点,修改请求头报文,伪造Referer.