• 软件测试/测试开发丨接口测试学习笔记-常见的接口协议


    点此获取更多相关资料

    本文为霍格沃兹测试开发学社学员学习笔记分享
    原文链接:https://ceshiren.com/t/topic/27726

    一、网络模型

    image

    二、常见接口协议

    image

    RPC协议

    • RPC(remote procedure call)
    • 以本地代码调用的方式实现远程执行
    • 主要用于公司内部的服务调用

    优点

    • 传输效率高,性能损耗低、自带负载均衡、更好的服务治理能力

    常见的RPC协议

    • Dubbo:Java基础上的高性能RPC协议
    • gRPC:高性能通用RPC框架,基于protocol buffers(一个语言中立,平台中立的数据序列化框架)
    • Thrift:与gRPC类似的多语言RPC框架

    三、HTTP 协议详解

    3.1、HTTP协议

    • 请求

      • 请求行:method、URL、protocol
      • 请求方法:get、post、put、delete、head
      • 请求头:Cookie、user-agent
      • 请求参数:query
      • 请求体:Json、xml、form
    • 响应

      • 响应状态行
      • 响应头
      • 响应体

    3.2、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

    3.3、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;
    >
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    3.4、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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.5、HTTP 响应状态码

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

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

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

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

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

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

    四、Restful 架构

    • Restful:Representational State Transfer

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

      • GET:获取资源
      • POST:新增或者更新
      • PUT:更新资源
      • DELETE:删除资源
  • 相关阅读:
    作为一名后端工程师,你知道Redis为什么这么快吗?
    JavaScript/jQuery功能函数集
    (pytorch进阶之路)IDDPM之diffusion实现
    洛谷 P4735 最大异或和
    Electron录制应用-打包静态文件问题【命令行ffmpeg导不出视频】
    马氏距离原理介绍
    浅谈 kafka
    基于docker commit和Dockerfile为镜像添加ssh服务
    工业物联网模块应用之砂芯库桁架机器人远程无线控制
    深度学习——Pay Attention to MLPs
  • 原文地址:https://blog.csdn.net/Ceshiren666/article/details/133635097