从零开始的软件测试学习之旅(六)测试网络基础知识
测试网络基础知识
- HTTP和HTML
- URL
- DNS
- 客户端和服务器
- 请求方法和状态码
- 面试高频
- Fiddler抓包工具教学
- 弱网
HTTP和HTML
概念 html: HyperText Markup Language 超文本标记语言
http: HyperText Transfer Protocol 超文本传输协议
超文本: 图片, 音频, 视频
关系:http 可以对 html 的内容进行网络传输
URL
概念: uniform resource locator 统一资源定位符
格式 协议://IP地址:端口号/资源路径http://127.0.0.1:8081/hello; http://localhost
默认监听端口是80, 默认端口号是可以省略的
常见的协议类型: http/ https/ ftp/ ssh/ IMAP/ POP3/ …
DNS
概念:是域名系统 (Domain Name System), 是因特网的一项核心服务作用 它可以将 域名 和 IP地址 相互关联起来
客户端和服务器
概念
客户端client 用户端, 用户使用的程序, 如 B/S 架构中的浏览器, C/S 架构中的手机app
服务器server 对外提供服务的, 解决资源或数据
web服务器:提供web访问
文件服务器:提供文件服务
数据库服务器:提供数据库存储
请求与响应
请求:request , 客户端向服务器索取数据的一种行为
响应:response, 服务器对客户端的请求作出的反应, 一般指返回数据(或者html文档)给客户端
请求
行 URL, 请求方法 头 浏览器信息, 支持语言等 体 请求参数

响应
行 http协议和版本, 状态码 头 web服务器信息, 响应内容的类型, 响应内容长度等 体 http响应的具体内容

请求方法和状态码
请求方法
GET:请求的参数放在 URL 中, 典型应用场景就是查询
POST:请求的参数放在请求体中, 更安全
状态码
1xx: 指示信息–表示请求已经接受, 继续处理
2xx: 成功–表示请求已经被成功接收, 理解, 接受
3xx:重定向–要完成请求必须进行更进一步的操作
4xx:客户端错误–请求有语法错误或请求无法实现
5xx:服务端错误–服务器为难实现合法的请求
面试高频
get与post区别
最直观的区别就是GET把参数包含在URL中, POST通过 request body (请求体) 传递参数
GET比POST更不安全, 因为参数直接暴露在URL中, 所以不能用来传递敏感信息
GET请求在URL中传递的参数的长度是有限制的, 而POST没有
GET请求适合用于获取数据,不适合传输敏感信息,而POST请求则适合用于提交数据,可以传输较大量的数据,安全性更高。
Fiddler抓包工具教学
fiddler 是一个 http 调试代理工具, 它能够记录并检查所有你的电脑和互联网之间的通信
注意: fiddler 是用 C# 编写的, 所以安装运行会依赖 Microsoft .Net Framework
原理:代理服务器从中接受过滤客户端的信息
未使用前

使用后

基础操作
1.抓取数据包 2.过滤数据包 3.删除数据包
抓取数据包
1.打开 fiddler
2. 配置 fiddler 和 浏览器代理
3. 通过浏览器发起请求
4. 查看捕捉的数据包
HTTPS抓包配置
fiddler 默认不开启 https 抓包, 需手动配置
1. Tools -> Options -> HTTPS
2. 选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求, 第一次会弹出证书安装提示, 若没有弹出提示, 勾选 Actions -> Trust Root Certificate, 默认安装即可
3. 勾选 “Ignore servercertificate errors (unsafe)”
浏览器代理配置

fiddler默认不开启https抓包,需配置


过滤数据包

删除数据包
三种方式
1.工具栏中 X 按钮 -> remove all
2.底部命令行输入 clear 或者 cls
3.选中数据包 -> 点击键盘上的 DELETE 或者右键 Remove (按条件删除所选的/未选的/所有的)
典型应用场景
场景和作用
1.抓包:辅助定位bug
2.改包:涉及接口测试/ 安全测试
3.弱网:专项测试
4.前端性能分析:分析前端性能
抓包

改包
步骤
1.浏览器发起请求
2.fiddler记录请求, 并把请求拖到 composer , 进行修改
3.在 composer 中, 点击 Excute , 发送模拟请求
4.在 fiddler 中查看响应



拦截并修改


演示视频如下
请求保存到本地
1.保存请求, fiddler回话列表, 某一个请求右键 -> Save -> Request -> Entire Request
用法1: 查看
用法2: 放到composer中, 重新请求
2.[用法2]使用请求, 把保存的请求的内容复制到 composer , 修改或直接执行
模拟响应
步骤
1.浏览器发起请求, fiddler 抓包
2.使用 fiddler 的 AutoResponder 修改响应的规则, 自动模拟响应
3.(可能需要清除浏览器缓存), 并再次使用浏览器发起请求
4.浏览器查看响应

弱网
1.Rules -> Customize Rules… 点击
2.进入到编辑脚本中, 修改限速, 保存
修改每KB的上传延迟, 默认 300ms
修改每KB的下载延迟, 默认 150ms
if (m_SimulateModem) {// Delay sends by 300ms per KB uploaded.oSession["request-trickle-delay"] = "3000"; // Delay receives by 150ms per KB downloaded.oSession["response-trickle-delay"] = "1500"; }
3.启动限速 Rules -> Performance -> Simulate Modem Speeds 点击
4.发起请求, 并查看响应效果
相关文章:
从零开始的软件测试学习之旅(六)测试网络基础知识
测试网络基础知识 HTTP和HTMLURLDNS客户端和服务器请求方法和状态码面试高频Fiddler抓包工具教学弱网 HTTP和HTML 概念 html: HyperText Markup Language 超文本标记语言 http: HyperText Transfer Protocol 超文本传输协议 超文本: 图片, 音频, 视频 关系:http 可以对 html 的…...
NSS题目练习
[SWPUCTF 2021 新生赛]gift_F12 通过题目提示可以知道flag应该可以在源代码中找到 查看源代码,直接用 ctrlf 搜索flag即可 [SWPUCTF 2021 新生赛]jicao 题目打开后能看到一串php代码,要求是用post传参传入idwllmNB以及用get传参传入json[x]"wllm&q…...
Springboot+vue项目零食销售商城
摘要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,零食销售商城当然也不能排除在外。零食销售商城是以实际运用为开发背景,运用软件工程原理和开发方法ÿ…...
cesium 雷达遮罩(电弧球效果)
cesium 雷达遮罩(电弧球效果) 以下为源码直接复制可用 1、实现思路 通过修改“material”材质来实现轨迹球效果 2、代码示例 2.1 index.html <!DOCTYPE html> <html lang="en"><head><!...
W801学习笔记二十三:语文和英语学习应用的代码汇总
前面几章,代码经过重构,可能有点乱。这里给个最终版本,以供参考。 1、应用基类: IScean.h enum SceanResult{SceanResult_EXIT 1, SceanResult_Done 2 };class IScean {public:IScean();virtual ~IScean();// 纯虚函数virtu…...
安卓LayoutParams浅析
目录 前言一、使用 LayoutParams 设置宽高二、不设置 LayoutParams2.1 TextView 的 LayoutParams2.2 LinearLayout 的 LayoutParams 三、getLayoutParams 的使用四、setLayoutParams 的作用五、使用 setWidth/setHeight 设置宽高 前言 先来看一个简单的布局,先用 x…...
UltralSO制作启动盘时报错:磁盘/映像容量太小解决办法
UltralSO制作启动盘时报错:磁盘/映像容量太小解决办法 发现网上随便下载的UltralSO制作启动盘时报错:磁盘/映像容量太小,导致制作启动盘出错 解决方案: 去这个地址下载:https://cn.ultraiso.net/xiazai.html 下载正版…...
2024-05-09四月初二周四
2024-05-09四月初二周四 06:40-23:00 深兰Ai第五期 Part1:课时258:00:00:00 12:30-13:00 午饭烧水: 13:30-23:00 机器学习 19:00-20:00 晚饭: 20:00-23:00 coding 2.5 特征降维 unending 23:00-06:30 烧水资料下载...
【微服务】springcloud整合dubbo3使用nacos作为注册中心
目录 一、前言 二、springboot版本升级带来的问题 2.1 springboot为什么需要升级版本...
php中常用的数据类型汇总
在 PHP 中,常用的数据类型主要有以下几种: 标量类型(Scalar Types) integer(整型):用于存储整数,可以是正数或负数。float(浮点型/双精度型):用于…...
【源码阅读】Golang中的go-sql-driver库源码探究
文章目录 前言一、go-sql-driver/mysql1、驱动注册:sql.Register2、驱动实现:MysqlDriver3、RegisterDialContext 二、总结 前言 在上篇文章中我们知道,database/sql只是提供了驱动相关的接口,并没有相关的具体实现,具…...
2024-05-08 postgres-火山模型-执行-记录
摘要: 2024-05-08 postgres-火山模型-执行-记录 上下文: 2024-05-08 postgres-调试及分析-记录-CSDN博客 火山模型: 数据流是在查询树上,自上而下进行拉取,由上而下的调用。树本身就表明了数据的流动。每次执行一个元组,也就类似于迭代器的…...
QT5带UI的常用控件
目录 新建工程,Qmainwindow带UI UI设计器 常用控件区 Buttons 按钮 containers 容器 控件属性区域 对象监视区 布局工具区 信号与槽区 简单例子1 放置一个按钮控件,改文本为发送,该按键为Button1; 按钮关联信号和…...
识货小程序逆向
声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!wx a15018601872,x30184483x…...
【OceanBase 系列】—— OceanBase v4.3 特性解读:查询性能提升之利器列存储引擎
原文链接:OceanBase 社区 对于分析类查询,列存可以极大地提升查询性能,也是 OceanBase 做好 HTAP 和 OLAP 的一项不可缺少的特性。本文介绍 OceanBase 列存的实现特色。 OceanBase从诞生起就一直坚持LSM-Tree架构,不断打磨功能支…...
【Java开发的我出书啦,各位同仁快过来围观】!!!
文章目录 🔊博主介绍🥤本文内容出书的目的出书的过程书籍的内容 📥博主的话 🔊博主介绍 文章目录 🔊博主介绍🥤本文内容出书的目的出书的过程书籍的内容 📥博主的话 🌾阅读前&#x…...
AI预测福彩3D第10套算法实战化赚米验证第1弹2024年5月5日第1次测试
从今天开始,准备启用第10套算法,来验证下本算法的可行性。因为本算法通过近三十期的内测(内测版没有公开预测结果),发现本算法的预测结果优于其他所有算法的效果。彩票预测只有实战才能检验是否有效,只有真…...
leetcode 2944.购买水果需要的最小金币
思路:dp 这道题一开始想的时候并不会,但是看到了有些水果可以买也可以不买,所以就想到了选择与不选择的思路。 对于每一个水果,我们都有买和不买的选择,但是我们的第一个水果是一定要买的。然后再往后推导。 用dp[]…...
算法人生(14):从“探索平衡策略”看“生活工作的平衡之道”
在强化学习中,有一种策略叫“探索平衡策略Exploration-Exploitation Trade-off)”,这种策略的核心是在探索未知领域(以获取更多信息)和利用已知信息(来最大化即时回报)之间寻求平衡,…...
如何使用Tushare+ Backtrader进行股票量化策略回测
数量技术宅团队在CSDN学院推出了量化投资系列课程 欢迎有兴趣系统学习量化投资的同学,点击下方链接报名: 量化投资速成营(入门课程) Python股票量化投资 Python期货量化投资 Python数字货币量化投资 C语言CTP期货交易系统开…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
vue3 daterange正则踩坑
<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...
sshd代码修改banner
sshd服务连接之后会收到字符串: SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢? 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头,…...
