【接口测试】基础01

1、http和https的区别

从安全、端口、证书、数据传输四个方面叙述

安全性:
HTTP是明文传输协议,数据在传输过程中不加密,容易被窃听和篡改。
HTTPS通过使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议对通信进行加密,确保数据的机密性和完整性,防止被恶意窃听和篡改。

默认端口:
HTTP使用默认端口80进行通信。
HTTPS使用默认端口443进行加密通信。

证书和身份验证:
HTTPS需要使用SSL/TLS证书,用于验证服务器的身份。证书由受信任的证书颁发机构(CA)颁发,用于确保连接的安全性和可信度。
HTTP不涉及证书和身份验证,因此存在身份伪装和中间人攻击的风险。

数据传输方式:
HTTP使用TCP(Transmission Control Protocol)进行数据传输。
HTTPS在HTTP的基础上加入了SSL/TLS协议,通过在TCP连接上建立加密通道来传输数据。

2、https的工作原理

客户端发起响应–>服务端获取数字证书并返回给客户端–>客户端校验证书–>客户端生成密钥–>使用证书中的公钥加密密钥发送给服务端–>服务端接收密钥,得到会话密钥–>客户端和服务端通过加密密钥进行通话,保证通信安全。

HTTPS(Hypertext Transfer Protocol Secure)是在HTTP基础上添加了加密和身份验证机制的安全协议。它使用SSL(Secure Sockets Layer)或TLS(Transport Layer Security)协议对通信进行加密和保护,确保数据在传输过程中的机密性和完整性。

下面是HTTPS的工作原理:

1、客户端发起HTTPS请求:客户端(浏览器)向服务器发起HTTPS请求,即使用"https://"开头的URL。

2、服务器获取数字证书:服务器收到请求后,会将自己的数字证书发送给客户端。数字证书包含服务器的公钥、证书的颁发机构等信息。

3、客户端验证证书:客户端收到服务器的数字证书后,会验证证书的有效性和合法性。首先,检查证书是否由受信任的证书颁发机构(CA)签发,以确保证书的真实性。然后,检查证书中的信息是否与服务器域名匹配,防止伪造证书的中间人攻击。

4、客户端生成随机密钥:如果证书验证通过,客户端会生成一个随机的对称密钥(会话密钥),用于后续的加密和解密过程。

5、客户端加密密钥并发送:客户端使用服务器的公钥(从证书中获取)对会话密钥进行加密,并将加密后的密钥发送给服务器。

6、服务器解密密钥并确认:服务器收到加密的会话密钥后,使用自己的私钥进行解密,得到会话密钥。

7、客户端和服务器加密通信:客户端和服务器使用会话密钥进行对称加密通信,保证数据的机密性和完整性。加密通信可以使用对称加密算法,如AES(Advanced Encryption Standard)。

通过以上步骤,HTTPS实现了对数据的加密传输和身份验证,确保了通信的安全性。客户端和服务器之间的数据传输都经过加密和解密的过程,中间人无法获取明文数据内容。同时,数字证书的验证也确保了服务器的真实性,防止伪造和篡改。这使得HTTPS在保护敏感信息和确保网络通信安全方面具有重要的作用。

3、UI界面测试和接口测试的区别

UI关注的是界面功能以及用户体验,UI测试对象为前端页面,页面布局、交互还有样式等
API测试接口的功能和数据交换API的测试对象为后端接口,主要验证数据格式、参数验证、数据传输。

4、接口测试用例的编写要点有哪些

1、功能测试:确保覆盖接口的各种功能场景,包括正常流程、异常流程、边界条件等。根据接口的规格和需求,编写针对每个功能的测试用例,验证接口的功能是否正确实现。

2、参数验证:验证接口的参数是否正确接收和处理。包括验证参数的类型、长度、格式、取值范围等。设计测试用例时,应覆盖所有可能的参数组合和边界条件。

3、接口交互:验证接口的请求和响应是否符合预期。包括验证请求的方法、URL、请求头、请求体等是否正确;验证响应的状态码、响应头、响应体等是否符合预期。

4、数据一致性:如果接口涉及到数据的读取、写入或更新,确保验证数据的一致性。可以使用事先准备的测试数据,通过接口读取、写入或更新数据,并验证数据的正确性。

5、边界条件:针对接口参数的边界条件进行测试。例如,验证参数的最小值、最大值、空值、特殊字符等,以确保接口在边界情况下的行为和处理。

6、异常处理:测试接口在异常情况下的处理能力。包括验证接口在输入非法参数、数据库连接异常、网络异常等情况下的响应和错误处理。

7、性能测试:针对接口的性能进行测试,包括接口的并发能力、响应时间、吞吐量等。设计性能测试用例时,可以模拟多个并发请求,观察接口的性能表现。

8、接口组合和依赖:如果系统中有多个接口之间存在依赖或组合关系,确保测试涵盖这些场景。测试用例应考虑接口之间的数据传递、状态同步等情况。

9、安全性测试:验证接口的安全性,包括身份验证、访问权限控制、防止注入攻击等方面的测试。确保接口在安全性方面的要求得到满足。

10、日志和错误处理:测试接口的日志记录和错误处理机制。包括验证日志的记录内容和格式,以及错误处理的正确性和友好性。

5、post和get的区别

编码方式+长度限制+安全性不同+传输数据包数量+get可书签可主动缓存+参数存放位置不同

GET 产生的 URL 地址可以被保存为书签,而 POST 不可以。
GET 请求会被浏览器主动 cache,而 POST 不会,除非手动设置。
GET 请求只能进行 url 编码,而 POST 支持多种编码方式。
GET 请求参数会被完整保留在浏览器历史记录里,而 POST 中的参
数不会被保留。
GET 请求在 URL 中传送的参数是有长度限制的,而 POST 没有。
GET 比 POST 更不安全,因为参数直接暴露在 URL 上,所以不能
用来传递敏感信息。
GET 参数通过 URL 传递,POST 放在请求 Body 中。
GET 产生一个 TCP 数据包,POST 产生两个 TCP 数据包。

6、Session 与 Cookie 有什么区别

存放位置+安全性+大小+保存方式+服务器性能影响+过期时间+跨域支持

1、存储位置:Cookie存储在客户端(浏览器)中,以文本文件的形式保存在用户的计算机上。而Session存储在服务器端,通常存储在服务器的内存中或者持久化到数据库中。

2、数据安全性:Cookie中的数据可以被用户查看和修改,因此不适合存储敏感信息。而Session数据存储在服务器端,对于客户端是不可见的,因此相对更安全。

3、存储容量:Cookie的存储容量有限,通常为几KB,不同浏览器有不同的限制。而Session的存储容量一般较大,取决于服务器的配置和可用内存。

4、过期时间:Cookie可以设置过期时间,在到达过期时间之前一直有效。而Session通常具有默认的过期时间,在用户关闭浏览器或一段时间不活动后过期。

5、跨域支持:Cookie可以设置为跨域访问(特殊设置下支持跨域),可以在多个域名之间共享。而Session通常与特定的域名绑定,不容易跨域共享。

6、服务器性能。SESSION 对服务器的压力会更大一些,而 Cookie 放
在客户端,所以对服务器基本没影响。

6.1 Cookie分类

内存cookie,没有设置过期时间,信息放在浏览器的缓存,当浏览器关闭的时候,cookie信息被释放
硬盘cookie,永久保存,信息放在用户的硬盘中,可反复读取

6.2为什么需要cookie?

因为http连接是无状态的,cookie是为了解决http无状态的缺陷而产生的;

HTTP 是一种无状态协议,即每个请求和响应之间没有直接的关联。这意味着服务器无法直接知道两个不同请求是否来自同一个用户,也无法记住之前的请求状态。为了解决这个问题,引入了 Cookie 机制。

Cookie 是在客户端存储数据的一种机制。当服务器在响应中设置了一个 Cookie,它会被存储在客户端的浏览器中。然后,在每个后续的请求中,客户端会自动将这些 Cookie 信息添加到请求头中发送给服务器。

通过使用 Cookie,服务器可以在客户端存储一些状态信息,比如会话标识符或用户身份验证令牌。这样,服务器可以通过读取请求中的 Cookie 信息来识别用户并恢复之前的会话状态。也就是说,服务器可以基于存储在 Cookie 中的数据来处理请求,实现对用户状态的持久化。

Cookie 的使用可以帮助解决 HTTP 无状态的问题,使得服务器能够在一系列请求中识别和跟踪用户。通过在客户端存储状态信息,实现了会话的连续性,从而提供了更好的用户体验和个性化服务。

6.3 Cookie测试点

1.禁止使用 Cookie
设置浏览器禁止使用 Cookie,访问网页后,检查存放 Cookie 文件中未生成相关文件;
2.Cookie 存储路径
按照操作系统和浏览器对 Cookie 存放路径的设置,检查存放路径是否与设置一致;
3.Cookie 过期检查
按照 Cookie 过期时间,检查存放文件该 Cookie 是否被自动删除
4.检查浏览器中 Cookie 选项
通过不同浏览器,设置是否接受 Cookie 文件,如同意接受 Cookie,检查存放路径中是否存在 Cookie 文件
5.浏览器删除 Cookie
通过浏览器的设置,删除 Cookie 文件
6.Cookie 加密
提交敏感信息时,数据应加密
7.Cookie 保存信息
验证 Cookie 能正常工作
8.篡改 Cookie
修改 Cookie 内容,查看系统功能是否出现异常,或数据错乱
9.Cookie 的兼容性
使用不同类型,或同一类型不同版本的浏览器,检查 cookie 文件的兼容性
10.刷新操作对 cookie 的影响
进行刷新操作后,是否重新生成 cookie 文件或是对 cookie 文件进行修改
11.检查 cookie 内容存储是否完整正确
若 cookie 进行了加密,先对 cookie 文件内容进行解密,然后检查是否按照设计要求存储了相关所有的 cookie 记录信息
12.对应硬盘存储空间没有空闲时,是否能进行 cookie 内容的有效存储
13.多次做相同的操作或设置,检查是否更新或添加了新的 cookie文件按照设计要求进行判断
14.如果使用 cookie 来统计次数,则要检测是否统计正确例如通过用户登录次数进行统计1,访问网站,每次都需要输入用户名和密码分第一次登陆还是非第一次登录

6.4 Cookie使用场景

1、会话管理:Cookie 用于跟踪用户的会话状态,通过在客户端存储会话标识符,可以在用户访问不同页面或进行多个请求时维持用户的登录状态,使用户在访问网站时无需重复登录。

2、用户身份识别:通过将用户身份信息存储在 Cookie 中,网站可以辨别不同的用户,并为每个用户提供个性化的服务和内容。例如,存储用户的偏好设置、购物车信息等。

3、跨站点通信:Cookie 可以用于在不同的域或子域之间共享数据。这在跨站点身份验证、单点登录等场景下非常有用。

4、数据传递:通过将数据存储在 Cookie 中,网站可以在不同页面之间传递信息。例如,将用户选择的语言设置存储在 Cookie 中,使得用户在切换页面时保持所选的语言。

6.5 Session产生原因

同样是为了解决http连接的无状态特性带来的问题

6.5 Session使用场景

比较多的用于用户认证和授权,购物车功能等

1、用户认证和授权:在用户登录过程中,服务器会创建一个 Session 并将用户的登录状态信息存储在其中,以便后续验证用户的身份和权限。Session 可以保存用户的登录凭证、角色、权限等信息,用于进行用户认证和授权操作。

2、购物车功能:在电商网站中,用户可以将商品添加到购物车中,而购物车的内容需要在用户不同的请求之间保持一致。通过使用 Session,服务器可以将用户的购物车内容存储在 Session 中,并在用户进行结算或下单操作时进行读取和更新。

3、会话追踪:Session 可以用于追踪用户的会话活动,例如记录用户浏览的页面、点击的链接、操作的记录等。这对于分析用户行为、优化网站体验和个性化推荐等方面非常有用。

4、在线支付和交易:对于需要处理支付和交易的应用程序,Session 可以用于存储临时的交易数据,例如订单信息、支付状态、交易记录等。通过 Session,可以在整个支付和交易过程中跟踪和管理这些信息。

5、缓存管理:有些应用程序会将经常使用的数据存储在 Session 中,以减少对数据库或其他资源的频繁访问。通过在 Session 中缓存数据,可以提高应用程序的性能和响应速度

7、http通信过程中,是谁主动断开连接

1、对于带有Content-Length的HTTP 1.0请求,客户端可以根据Content-Length字段指定的长度来接收请求体的数据。一旦接收完请求体数据,客户端可以主动关闭连接。

2、对于不带Content-Length的HTTP 1.0请求,客户端会一直接收数据直到服务器主动关闭连接。客户端无法准确知道请求体的长度,所以只能一直接收数据直到连接关闭。

3、对于带有Content-Length的HTTP 1.1请求,客户端可以根据Content-Length字段指定的长度来接收请求体的数据。一旦接收完请求体数据,客户端可以主动关闭连接。

4、对于带有Transfer-Encoding: chunked的HTTP 1.1请求,请求体会被分成多个块(chunks),每个块的开头都有一个长度字段,用于指示当前块的长度。客户端会按照块的长度逐个接收和处理块,直到接收完所有块或服务器主动关闭连接。

综上所述,客户端在接收HTTP请求体时,根据不同的协议版本、Content-Length字段或Transfer-Encoding字段来确定接收的策略和方式。无论是客户端主动关闭连接还是服务器主动关闭连接,取决于具体的场景和协议规范。

8、http常见方法

get/post/put/head/delete/options/patch/

1、GET:从服务器获取指定资源的数据,通常用于获取数据。

2、POST:向服务器提交数据,通常用于创建新的资源或提交表单数据。

3、PUT:向服务器上传指定资源的数据,通常用于更新已存在的资源。

4、DELETE:从服务器删除指定的资源。

5、HEAD:与GET方法类似,但只返回资源的头部信息,不返回实际的资源内容。

6、OPTIONS:获取服务器支持的HTTP方法列表,用于确定服务器的功能和能力。

7、PATCH:对资源进行局部更新,只修改部分数据。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值