接口测试之协议和常用工具安装使用

一、网络协议

在这里插入图片描述

tcp与udp的区别

  • TCP:面向连接、错误重传、拥堵控制、适用于可靠性高的场景
  • UDP:不需要提前建立连接,实现简单,适用于实时性高的场景

Restful 软件架构风格

借助于http协议的基本请求方法代表资源的状态切换

  • post:新增或者更新
  • get:获取资源
  • put:更新资源
  • delete:删除资源

RPC协议

以本地代码调用的方式实现远程执行

Dubbo、gRPC、Thrift

1.1、HTTP协议常见状态码

状态码有5个大类,由第一位数字进行区分,每个大类下面还有不同的子类,每种子类的长度都是3位,都代表一个状态码,即一种类型的返回的信息。

  • 1xx表示通知信息,如请求收到了或正在进行处理
  • 2xx表示成功
  • 3xx表示重定向,如果要完成请求还必须进行下一步请求
  • 4xx表示客户端的错误
  • 5xx表示服务器的错误

1.2、请求与响应格式分析

  1. 开发者工具f12,右键左侧数据,选择 Copy -> copy as curl,即可把请求内容转化为curl命令
  2. 将命令copy在gitbash或bash上并运行,则会看到返回消息
  3. 对上面命令进行细化,加入‘-v’参数可以打印更详细的内容,用‘2>&1’将标准错误重定向到标准输出,发送此命令将得到细化后的内容。

1.3、get与post的区别

常见区别:
1、http的method字段不同
2、post可以附加body,可以支持form、json、xml、binary等各种数据格式
3、 行业通用规范

  • 无状态变化的建议使用get请求
  • 数据的写入与状态的修改建议使用post

1.4、cookie、session和token

cookie与session的区别

  • cookie:浏览器接受服务器的Set-Cookie指令,并把cookie保存到电脑上,每个网站保存的cookie只作用于自己的网站
  • session:数据存储到服务器,只把关联数据的一个加密串(sessionid)保存到cookie中标记

tooken的应用场景

  • 凭借认证信息获取token,或通过后台配置好token
  • 在相关请求中使用token,多数是以query参数的心态提供

session与token的区别

1、token是一个用户请求时附带的请求字段,用于验证身份与权限;
2、session可以基于cookie,也可以基于query参数,用于关联用户相关数据;
3、跨域应用的时候,比如android原生系统不支持cookie

  • 需要用token识别用户
  • 需要把sessionid保存到http请求中的header或者query字段中

二、协议分析工具

网络监听(偏底层的协议):TcpDump + WireShark

代理Proxy

  • 推荐工具:手工测试charles[全平台]、安全测试burpsuite[全平台java]
  • 自动化测试:mitmproxy
  • 其它代理:fiddler everywhere[全平台]、AnyProxy[全平台]

协议客户端工具:curl、postman

2.1、tcpdump(linux)

需要root权限

参数

  • -x 抓取到的数据包以十六进制展示
  • -w file 抓取的数据包保存到文件

表达式

  • ip tcp 协议
  • host 主机名
  • port 80
  • src 来源dst目的
  • and or () 逻辑表达式

示例:抓取访问百度的数据包

步骤

  1. 启动一个窗口启动抓包命令:tcpdump host www.baidu.com -w /tmp/tcpdump.log
  2. 再启动一个窗口发送请求(模拟一次比较干净的请求):curl http://www.baidu.com/
  3. 停止tcpdump:crtl+c
  4. 使用wireshark打开/tmp/tcpdump.log

TCP连接的三次握手和四次挥手

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值