备注:未经博主允许禁止转载
个人笔记(整理不易,有帮助,收藏+点赞+评论,爱你们!!!你的支持是我写作的动力)
笔记目录:学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客
目录
一:简单了解
数据包也叫报文,捕获数据包简称抓包(Packet Capture)
1)Fiddler能干嘛????
1:性能测试,捕获数据包,用工具(Jmeter、LoadRunner)模拟多用户同时发包
2:安全测试,Fiddler作为“中间人”,能修改包的内容,做到SQL注入,篡改,重放攻击等(渗透,越权,XSS,SQL注入,OWASP攻击)
3:接口测试,开发不提供接口文档,测试可以去抓包查看接口的信息
4:异常测试,模拟服务器返回500错误,测试客户端是否正常
5:定位BUG是前端还是后端的,看响应数据跟界面对比
6:前端可以使用Fiddler的AutoResponder模拟请求接口,调试UI组件(后端接口Mock)
7:AJAX调试:比如要测试后端返回的特殊数据结构对页面和客户端的影响,可以造一些假数据去测试(XSS,长数据,不同字段类型(数组,数字,字符串))
8:线上测试:使用AutoResponder,用本地的HTML/css/JavaScript文件替换线上的文件
8:检查404错误( 多数404跟资源文件引用有关,如某些代码引用了这些不存在的CSS或者js文件,可能不会影响页面显示,但会影响性能。正常引用的文件存在,请求一次,浏览器缓存起来,客户端减少请求次数,服务器减轻连接压力,但是这些不存在的文件,会导致每次打开页面都要去请求,这就延长了页面加载时间,也给服务器带来了压力,浪费网络资源),大响应问题(响应太大,网络传输时间长)
2)爬虫是什么?
抓包是了解客户端和服务器交互的过程,爬虫是了解交互过程后模拟请求获取数据的工具
爬虫抓取数据的优先级:手机端>手机网页>PC端
3)Fiddler是位于客户端和服务器端的HTTP(超文本传输协议)的代理
Fiddler就是在这个过程中去监听
B/S架构(brower/server 浏览器/服务器):客户端发送HTTP请求给服务器,服务器处理请求,生成HTTP响应发给客户端,客户端再解析HTTP响应中的HTML
二:下载安装
官网下载:Download Fiddler Web Debugging Tool for Free by Telerik
下载Fiddler4.0,因为w7和w10一般安装好了.NET Framework 2.0
打开个网址,可以看到抓到很多东西(记得浏览器去缓存)
比如一个图片资源,可以去复制一下地址
由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射
域名地址的信息存放在一个叫域名服务器(DNS,Domain name server)的主机内,使用者只需了解易记的域名地址,其对应转换工作就留给了域名服务器。域名服务器就是提供IP地址和域名之间的转换服务的服务器
三:工具使用
参考:Fiddler学习(五)_如何取消fiddler中取消勾选保存会话_weixin_42717928的博客-CSDN博客
四:HTTP协议报文结构
(1)HTTP请求报文
HTTP请求报文主要由请求行、请求头部、空一行、请求体(这个不一定有)4部分组成
请求方式:
请求头开发可以自定义:
如登录例子:http://test.lemonban.com/ningmengban/app/login/login.html
GET没有请求体,POST有
【请求行】
# 请求方式、统一资源定位符(请求地址)、HTTP协议/版本号
POST http://test.lemonban.com/ningmengban/mvc/user/login.json HTTP/1.1
【请求头部信息】
# 域名(确认主机IP的)
Host: test.lemonban.com
Connection: keep-alive # 连接方式:长连接
Content-Length: 62 # 内容长度
# 返回内容
Accept: application/json, text/javascript, */*; q=0.01
X-Requested-With: XMLHttpRequest
# 客户端的信息(系统、浏览器信息)
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36
# 请求的格式
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: http://test.lemonban.com
# 哪个页面发起的请求
Referer: http://test.lemonban.com/ningmengban/app/login/login.html
# 可接收的内容编码
Accept-Encoding: gzip, deflate
# 接收的语言
Accept-Language: zh-CN,zh;q=0.9
【空一行】
【请求体】
username=178&password=5617b632ee84e00a6a9d254f03
(2)HTTP响应报文
【响应状态行】
# 协议版本、状态码、原因短语
HTTP/1.1 200 OK
# 响应头部信息
Server: nginx/1.12.0
Date: Tue, 02 Jun 2020 11:49:31 GMT
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: JSESSIONID=56F23667C30C403EF0ACB2107BD52E00; Path=/ningmengban
【空一行】
【响应体】
46
{"success":true,"message":"登录成功","content":null,"object":null}
0
常用状态码:(详情参考HTTP学习(三)_weixin_42717928的博客-CSDN博客)
更多状态码:(HTTP状态码_百度百科)
响应头:
set-Cookie:服务器返回了一段文本给客户端,客户端把它保存在本地,回头请求要把这个带上,让服务器知道你已经登录了