2023软件测试金三银四常见的软件测试面试题-【抓包和网络协议篇】

news2024/11/15 11:07:31

八、抓包与网络协议

8.1 抓包工具怎么用

我原来的公司对于抓包这块,在App的测试用得比较多。我们会使用fiddler抓取数据检查结果,定位问题,测试安全,制造弱网环境;

如:抓取数据通过查看请求数据,请求行,请求报头,请求正文,信息是否正确去检查结果,

如果是以4开头的话就有可能是前端问题一般我会到前端排查,以5开头就有可能是后端

问题我就会到后端排查;如果是200的话,就需要检查请求行,请求报头,请求正文是否正确,

如果请求错误就是前端问题,如果请求没有问题,那就是后端问题,看后端问题服务器运行日志,

是否包含 exception,error或根据时间点去看日志。

测试安全,抓取数据查看用户的感敏信息有没有进行加密显示,还有就是把发送请求的数据篡改是否成功。

弱网环境,诵过 fiddler工具选择 Customize Ruels...(Ctr+R)调出定义脚本编辑器找到

“if (m_SimulateModem)”设置上行下行网速,然后把

Rules-> Performance-> Simulate Modem Speeds选中生效

常用抓包工具有:浏览器中F12, fiddler, Charles(青花瓷), wireshark

8.2  如何抓取https的包

1、设置 Tools=> Option=>勾选 Decrypt Https traffic=>勾选 lgnore server

certificate errors(unsafe)

2、打开https网页就可以成功抓取了

3、还可以 Fiddler添加过滤器(Filters):只抓取指定iP的数据

8.3 如何抓取手机的包

1、开启 Fiddler的远程连接

Fiddler主菜单Toos- Options-> Connections>勾选 Allow remote computers to

2、重启 Fiddler,更新刚开启的远程配置

3、然后手机和电脑需要在同一个局域网,抓取http手机设置代理就可以,要抓取https包,手机需要安装一个fiddler证书

1、fder工具生成一个证书,发送手机上面安装

2、通过手机浏览器打开安装证书界面192.168.3.197:8888

ip地址是用 fiddler工具的电脑的ip地址,fiddler工具端口号的8888

3、点击下载证书,会提示,输入手机锁屏密码

4、给证书命名,名字随意,其他默认就ok

5、点击确定,安装成功,然后就可以抓取https的包了

8.4 网络协议了解多少?

原来我们用得比较多的协议是http和https以及tcp协议

http和https都是超文本协议,浏览器发送数据请求基本用的都是他们,不同的是https

在http的基础上增加了ssl加密协议,http的默认端口是80,http:的默认端口是443,

https收费,http免费。

tcp协议的话,作用在传输层,在发送请求前会有三次握手,是面向连接的协议,传输过程比较可靠

udp协议的话,作用在传输层,面向非连接协议,传输过程相对tcp不可靠,传输大量数据

8.5 请求方式有哪些?

常用:get、post

不常用:delete、put、head、option

8.6  get跟post请求的区别

1)get请求的参数有长度限制,post没有

2)get请求参数在url上传输,post的参数在请求正文中传输。post比get传输更安全

3)get只能接收ascall码参数,而post没有限制

4)get请求的时候,只请求一次,而post请求两次,第一发送请求头相关信息,第二次

再发送请求正文,(只有部分浏览器2次请求)

8.7  http跟https的区别

1.https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用

2.http是超文本传输协议,信息是明文传输https则是具有安全性的ssl加密传输协议

3.http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443

4.http的连接很简单,是无状态的;Https协议是由SSL + HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

8.8  为什么要使用cookie和session:http是无状态协议

第一次登录,发送用户信息给到服务器,服务器把用户信息保存在session中服务器响应数据给客户端,响应数据中有包含session的先关用户信息

客户端接收到服务器session信息,把session中相关的用户信息保存在cookie中

第二次登录,客户端发送请求,并携带cookie,服务端可以直接验证cookie值,如果用户已经登录过,可以免登录

8.9  cookie跟 session的区别

在网站中http请求是无状态的,也就是说即使第一次和服务器连接后并且登录成功后,

第二次请求服务器依然不能知道当前请求是哪个用户,cookie的出现就是为了解决这个问题,

第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的 cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是哪个了。cookie存储的数据量有限,不同的浏览器有不同的存储大小,但一般不超过4KB,因此使用 cookie只能存储一些小量的数据。

session和 cookie的作用有点类似,都是为了存储用户相关的信息,不同的是,cookie是存储在本地浏览器,而session存储在服务器.存储在服务器的数据会更加的安全,不容易被窃取。但存储在服务器也有一定的弊端,就是会占用服务器的资源,但现在服务器已经发展至今,一些session信息还是绰绰有余的

8.10  OSI七层网络模型 

(1)参考模型:只是提供给生产商或者软件开发商参考的模型

(2)开发系统互联

(3)有七层

8.11  TCP模型

有四层:

应用层 (telnet.stp.htp),传输层( CP UDP)、网络层,中数据链路层

8.12   TCP和UDP的区别?

(1)TCP面向连接、而UDP面向非连接

(2)TCP相对UDP更可靠

(3)TCP应用场景,用于传输少量数据,而UDP用于传输大量数据

(4)TCP传输的数据相对UDP慢

8.13  tcp的三次握手是怎么实现的?

(1)客户端给服务器发送报文syn=1和序列号Seq=x

(2)服务器接收到客户端的请求,服务器响应syn=1,ack=x+1,seq=y

(3)客户端接收到服务器的响应,返回给服务器,ack=y+1,seq=z

8.14  http协议包含哪些内容

(1)请求信息

1)请求行:请求方式、请求地址http版本1.1

2)请求头

HTTP消息报头包括普通报头、请求报头、响应报头、实体报头

Cache- Control:no- cache 缓存

Connection:close/keep-aive 是否关闭或者保持连接

Accept-Charset:ios-859-1 字符集

Accept-Encoding:gzip.deflate 编码格式

Accept-Language:zh-cn 语言

Authorization:服务器授权验证

Host:主机

User-Agent:

Location:重定向

Server:服务器版本信息

Content-Encoding:实体报头的编码格式

请求正文

data

(2)响应信息

1)状态行:http版本、状态码、状态信息

2)响应头:跟请求头一样

3)响应正文:

8.15  http状态码有哪些

1xx需要继续发送请求

2xx成功

3xx需要重定向

4xx客户端请求数据有误

5xx服务器响应错误

6xx服务器响应错误

常见状态码:400、404、200、500、302、501、504

101服务器根据客户端的请求切换协议,只能切换到更高级的协议,

例如,切换到HTTP的新版本协议

102(代表处理将被继续执行)由 WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行

2开头这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。

200(成功)服务器已成功处理了请求,通常,这表示服务器提供了请求的网页

201(已创建)请求成功并且服务器创建了新的资源

202(已接受)服务器已接受请求,但尚未处理

203(非授权信息)服务器已成功处理了请求,但返回的信息可能来自另一来源

204(无内容)服务器成功处理了请求,但没有返回任何内容

205(重置内容)服务器成功处理了请求,但没有返回任何内容

206(部分内容)服务器成功处理了部分GET请求

207(代表之后的消息体将是一个XML消息),并且可能依照之前子请求数量的不同,包含

系列独立的响应代码

3开头(请求被重定向)表示要完成请求,需要进一步操作。通常,这些状态代码用来重定向。

300(多种选择)针对请求,服务器可执行多种操作。服务器可根据请求者(user agent)选择一项操作,或提供操作列表供请求者选择。

301(永久移动)请求的网页已永久移动到新位置.服务器返回此响应(对GET或HEAD请求的响应)时,会自动将请求者转到新位置

302(临时移动)服务器目前从不同位置的网页响应请求,

但请求者应继续使用原有位置来进行以后的请求

303(查看其他位置)请求者应当对不同的位置使用单独的GET请求来检索响应时,服务器返回此代码。

304(未修改)自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容

305(使用代理)请求者只能使用代理访问请求的网页。如果服务器返回此响应,

还表示请求者应使用代理。

307(临时重定向)服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求

4开头(请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理。

400(错误请求)服务器不理解请求的语法

401(未授权)请求要求身份验证,对于需要登录的网页,服务器可能返回此响应

403(禁止)服务器拒绝请求

404(未找到)服务器找不到请求的网页

405(方法禁用)禁用请求中指定的方法

406(不接受)无法使用请求的内容特性响应请求的网页

407(需要代理授权)此状态代码与401(未授权)类似,但指定请求者应当授权使用代理

408(请求超时)服务器等候请求时发生超时

409(冲突)服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息

410(已删除)如果请求的资源已永久删除,服务器就会返回此响应。

411(需要有效长度)服务器不接受不含有效内容长度标头字段的请求

412(未满足前提条件)服务器未满足请求者在请求中设置的其中一个前提条件

413(请求实体过大)服务器无法处理请求,因为请求实体过大,超出服务器的处理能力

414(请求的URL过长)请求的URL(通常为网址)过长,服务器无法处理

415(不支持的媒体类型)请求的格式不受请求页面的支持

416(请求范围不符合要求)如果页面无法提供请求的范围,则服务器会返回此状态代码

417(未满足期望值)服务器未满足期望请求标头字段的要求

5开头(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误

这些错误可能是服务器本身的错误,而不是请求出错

500(服务器内部错误)服务器遇到错误,无法完成请求

501(尚未实施)服务器不具备完成请求的功能,例如,服务器无法识别请求方法时可能会返回此代码。

502(错误网关)服务器作为网关或代理,从上游服务器收到无效响应,(比如:nginx里

设置了反向代理,自己代理给自己,形成了死循环,造成大量的访问日志,每秒上万)

503(服务不可用)服务器目前无法使用(由于超载或停机维护),通常,这只是暂时状态。

504(网关超时)服务器作为网关或代理,但是没有及时从上游服务器收到请求

505(HTTP版本不受支持)服务器不支持请求中所用的HTTP协议版本

8.16  post申请方式,用get会报什么错误。

404 Not Found

请求失败,请求所希望得到的资源未被在服务器上发现,没有信息能够告诉用户这个状况到底是暂时的还是永久的,假如服务器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址,404这个状态码被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下,出现这个错误的最有可能的原因是服务器端没有这个页面。

8.17  http协议提交请求头内容

Accept-Charset:浏览器能够显示的字符集

Accept- Encoding:浏览器能够处理的压缩编码

Accept-Language:浏览器当前设置的语言

Connection:浏览器与服务器之间连接的类型

Cookie:当前页面设置的任何 Cookie

Host:发出请求的页面所在的域

Referer:发出请求的页面的URL

User-Agent:浏览器的用户代理字符串

Content-Type:请求数据的格式或者是类型

近几千道题+答案,太多了这里就展示了其中的一部分如果大家有需要的话可以点击文章末尾的小卡片备注000领取哈

总结:下方是作者花费三个月打造的软件测试道测试开发全职业生涯资料包,有需要的话可以点击文章末尾的小卡片备注000领取哈

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/376567.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

经验 // 指标异常了怎么办?

本文参考了数据万花筒的文章,结合我自己工作经验。希望给大家一些帮助。 指标异常排查,是数据分析师的工作重点之一,是各行各业数据分析师都绕不开的话题。 本文试图回答: 1、指标波动的影响因素有哪些? 2、如何快速…

Web3中文|泰勒·斯威夫特演唱会票务闹乌龙,NFT票务急需普及

2022年底,美国艺人Taylor Swift(泰勒斯威夫特)的2023年巡回演唱会Eras Tour门票开始出票。作为当今世界最受欢迎的流行歌手之一,四年多没举办大型巡演无疑积攒了大量的粉丝需求。但是在2022年11月15日开放预售的当天,售…

数据驱动下的物种保护,拯救生命的“特效药”

如果给出这样      一张猎豹的图片      我们能否通过图中有限的信息      判断它的年龄、健康状况      以及所属族群?      如果你是一名研究动物的专家,你可能会从其花纹和斑点中获取一定量的信息,但对于大多数人以及一线的动物保护者来说,它可能只是一…

imx6ull——I2C驱动

I2C基本介绍 SCL 为高电平,SDA 出现下降沿:起始位 SCL 位高电平,SDA出现上升沿:停止位 主机——从机地址(ack)——寄存器地址(ack)——数据(ack) 重点:先是写&#xff0c…

context.Context

context.Context前言一、为什么要context二、context有什么用三、基本数据结构3.1、context包的整体工作机制3.2 基本接口和结构体3.3 API函数3.4 辅助函数3.5 context用法3.6 使用 context 传递数据的争议总结参考资料前言 context是go语言的一个并发包,一个标准库…

平台总线开发(id和设备树匹配)

目录 一、ID匹配之框架代码 二、ID匹配之led驱动​​​​​​​ 三、设备树匹配 四、设备树匹配之led驱动 五、一个编写驱动用的宏 一、ID匹配之框架代码 id匹配(可想象成八字匹配):一个驱动可以对应多个设备 ------优先级次低 注意事项…

河南农信社数字化转型实践方案

农信机构立足地方“三农”,普遍规模较小,高地域集中度在县域和农村地区,容易受到地方农村经济脆弱性的影响。 农信机构由于信贷项目要求多,单笔贷款业务批复的额度相对较小,在信用档案登记环节,造成业务量…

SQL Server主流版本生命周期管理

SQL Server 生命周期 每个版本的 SQL Server 都有至少 10 年的支持期限,其中包括五年的主要支持和五年的扩展支持: “主要支持” 包括功能、性能、可伸缩性和安全更新。“扩展支持” 仅包含安全更新。 “终止支持” (有时也称为生命周期结束…

udp套接字编程(超详细带你逐步实现)

我自己在学习UDP服务器的时候,有着太多的不解,我不明白一个udp服务器是如何设计出来的。我在网上找了很多的资料,不过绝大多数都是把代码往哪里一放,具体的设计流程完全不提,这让我看了之后一头雾水。或许对于刚刚开始…

scikit-learn实现近邻算法分类的示例

scikit-learn库 scikit-learn已经封装好很多数据挖掘的算法 现介绍数据挖掘框架的搭建方法 转换器(Transformer)用于数据预处理,数据转换流水线(Pipeline)组合数据挖掘流程,方便再次使用(封装…

SVN配置使用(钩子配置、updata忽略指定文件)

参考链接: svn(svnsync)实时同步备份及问题解答 SVN常用命令之update SVN钩子就是一个脚本,在SVN更新前、后、或者变化前后等等状态,触发的脚本。据此可以有多种用途,如:1、在版本提交前要求必须对更新进行说明&#…

20分钟6个示例4个动图教你学会Async Hooks

序幕 async_hooks模块提供了一个全新的功能世界,但作为 Node.js 爱好者,我最感兴趣的是,它可以让您轻松了解我们在应用程序中经常执行的一些任务的幕后情况。 在本文中,我将尝试借助async_hooks模块来演示和解释一个典型的异步资源的生命周期。 Async Hooks API 简介 as…

【源码解析】SpringBoot自动装配的实现原理

什么是SpringBoot的自动装配 SpringBoot在启动的时候会扫描外部jar包中的META-INF/spring.factories文件,将文件中配置的类信息按照条件装配到Spring容器中。 实现原理 核心注解SpringBootApplication Target({ElementType.TYPE}) Retention(RetentionPolicy.R…

时间序列分析 | BiLSTM双向长短期记忆神经网络时间序列预测(Matlab完整程序)

时间序列分析 | BiLSTM双向长短期记忆神经网络时间序列预测(Matlab完整程序) 目录 时间序列分析 | BiLSTM双向长短期记忆神经网络时间序列预测(Matlab完整程序)预测结果评价指标基本介绍完整程序参考资料预测结果 评价指标 训练集数据的R2为:0.99302 测试集数据的R2为&…

企业数字化(技术中台、数据中台、工业互联网平台)建设方案

【版权声明】本资料来源网络,知识分享,仅供个人学习,请勿商用。【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间删除!完整资料领取见文末,部分资料内容: 1.1 技术架构 1.1.1 技术架构总…

pandas提取excel数据形成三元组,采用neo4j数据库构建小型知识图谱

前言 代码来自github项目 neo4j-python-pandas-py2neo-v3,项目作者为Skyelbin。我记录一下运行该项目的一些过程文字以及遇到的问题和解决办法。 一、提取excel中的数据转换为DataFrame三元组格式 from dataToNeo4jClass.DataToNeo4jClass import DataToNeo4j imp…

Unity WebGL打包后运行

打包后出现以下:工程中没有StreamingAssets文件夹的,则打包后不会有下图StreamingAssets的文件夹 这3个文件夹都是项目资源,只有index.html才是打开Web运行的页面 序列 主流浏览器 WebGL支持 1 Microsoft Edge Edge16或更高版本 2 火狐…

基于超像素的多视觉特征图像分割算法研究

0.引言 背景: 经典聚类算法:Kmeans、FCM 现有问题: 1)现有算法大都是基于单一的视觉特征而设计的,eg:基于颜色特征的分割。 2)没有考虑像素周围的空间信息;分割结果:多噪…

Spring-boot @ConfigurationProperties(prefix = “/xx“) 实际作用以及实现思路

ConfigurationProperties 可以通过配置该注解到我们自己创建的类上达成取代 Value 的作用 最终目的都是读取到配置文件中的值而已。 ConfigurationProperties(prefix “/xx”) 其中 prefix 指定了配置文件中的配置值得开头值 示例 配置文件中自定义值 application.yml 中…

3-10 图文并茂解释TCP/IP 3次握手4次断开

文章目录前言TCP报文首部TCP数据传输3次握手4次断开前言 TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且,TCP/IP传输…