Python 测开27期 - julia - 学习笔记 - 接口协议抓包与mock

接口协议种类

网络模型

常见接口协议

image

RPC 协议

  • RPC(Remote Procedure Call)
  • 以本地代码调用的方式实现远程执行
  • 主要用于公司内部的服务调用
  • 优点:传输效率更高、性能损耗更低、自带负载均衡策略、更好的服务治理能力
  • 常见的 RPC 协议
    • Dubbo:Java 基础之上的高性能 RPC 协议
    • gRPC:高性能通用 RPC 框架,基于 Protocol Buffers。PB 是一个语言中立、平台中立的数据序列化框架
    • Thrift:与 gRPC 类似的多语言 RPC 框架

HTTP 协议

  • 请求
    • 请求行:method url protocol
    • 请求方法:GET、POST、PUT、DELETE、HEAD
    • 请求头: Host Cookie User-Agent
    • 请求参数 query
    • 请求体:JSON XML FORM
  • 响应:
    • 响应状态行
    • 响应头
    • 响应体

URI 和 URL

  • URI,统一资源标识符,用来唯一的标识一个资源。
  • URL,统一资源定位符,它是一种具体的 URI
  • URL 结构:https://www.baidu.com/s?wd=霍格沃兹&rsv_spt=1
    1. 协议:http
    2. 域名:www.baidu.com
    3. 端口:跟在域名后面,域名和端口之间使用“:”作为分隔符,非必须,如果省略端口部分将采用默认端口
    4. 路径:/s
    5. 请求参数:wd=霍格沃兹&rsv_spt=**1

HTTP 响应状态码

  • 1xx 临时响应,表示通知信息,请求收到了或正在进行处理
  • 2xx 表示成功,接受或知道了
    • 200 成功
  • 3xx 表示重定向,要完成请求还必须才去进一步的行动
    • 301 永久移动
    • 302 临时移动
  • 4xx 表示客户端请求错误
    • 403 未授权
    • 404 未找到
  • 5xx 表示服务端错误
    • 500 服务器内部错误
    • 503 服务不可用

Restful 架构

  • Restful:Representational State Transfer
  • 借助于 HTTP 协议的基本请求方法代表资源的状态切换
    • GET:获取资源
    • POST:新增或者更新
    • PUT:更新资源
    • DELETE:删除资源

接口抓包工具 Charles

工具介绍

  • 支持 SSL 代理
  • 支持流量控制
  • 支持重发网络请求,方便后端调试
  • 支持修改网络请求参数
  • 支持网络请求的截获并动态修改
  • 可以自动将 json 或 xml 数据格式化,方便查看

安装

接口抓包工具Fiddler

工具介绍

  • 官网:https://www.telerik.com/fiddler/fiddler-classic
  • Fiddler 是位于客户端和服务器端的 HTTP 代理
  • 也是目前最常用的 HTTP 抓包工具之一
  • 功能
    • 监控流量
    • 支持解密 HTTPS
    • 查看分析接口数据
    • 修改请求的数据
    • 修改服务器返回的数据
    • 设置断点

抓取 HTTP 请求

  • 设置:Tools → Options → Connections
  • 确认抓包端口:默认为 8888
  • 默认勾选 Act as system proxy on startup

抓取 HTTPS 请求

  • Tools → Fiddler Options → HTTPS
  • 勾选 Decrypt HTTPS Traffic
  • 弹出安装证书弹窗 → 选择【Yes】-> 点击 【Yes】安装证书
  • 点击 Actions → Open Windows Certificate Manager 查看证书

抓取移动端请求

  • Tools → Fiddler Options → Connections
  • 勾选 Allow remote computers to connect
  • 移动端与电脑处于同一网络下
  • 移动端配置网络代理
    • 代理服务器主机:电脑IP
    • 代理服务器端口:8888
  • 浏览器输入 http://电脑ip:8888 下载 Fiddler 证书进行安装

断点

  • 菜单栏 → Rules → Automatic Breakpoints ->选择断点方式
  • 状态栏点击
    • 请求前断点:向上箭头
    • 响应后断点:向下箭头
  • 命令行下输入
    • 请求前断点:bpu xxx
    • 响应后断点:bpafter xxx

弱网

  • 菜单栏 → Rules → Performance → Simulate Modem Speeds
  • 修改网络配置参数
    • 菜单栏 → Rules → Customize Rules…
    • 搜索关键词 simulate
    • 修改延迟时间