接口测试-常见的接口协议

  • 网络模型

  • 常见接口协议

  • 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 请求报文
    GET /uploads/user/avatar/31438/8216a3.jpg HTTP/1.1

Host: ceshiren.com
Accept-Encoding: deflate, gzip
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0
(Macintosh; Intel Mac OS X 10_15_0)
AppleWebKit/537.36
(KHTML, like Gecko)
Chrome/80.0.3987.116 Safari/537.36
Accept: image/webp,image/apng,image/,/*;q=0.8
Referer: https://ceshiren.com/
Accept-Language: en,zh-CN;q=0.9,zh;q=0.8
Cookie: user_id=xx;

_homeland_session=xx;

  • HTTP 响应报文
    HTTP/1.1 200 OK
    < Server: nginx/1.10.2
    < Date: Thu, 12 Mar 2020 09:13:44 GMT
    < Content-Type: image/png
    < Content-Length: 11390
    < Connection: keep-alive

  • HTTP 响应状态码

  • 1xx 临时响应,表示通知信息,请求收到了或正在进行处理

  • 2xx 表示成功,接受或知道了

    • 200 成功
  • 3xx 表示重定向,要完成请求还必须才去进一步的行动

    • 301 永久移动
    • 302 临时移动
  • 4xx 表示客户端请求错误

    • 403 未授权
    • 404 未找到
  • 5xx 表示服务端错误

    • 500 服务器内部错误
    • 503 服务不可用
  • RESTful 架构

  • Restful:Representational State Transfer

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

    • GET:获取资源
    • POST:新增或者更新
    • PUT:更新资源
    • DELETE:删除资源