接口测试必备理论知识

一、 接口的分类

按照协议划分:HTTP、FTP、TCP\UDP\IP、Dubbo等协议接口

按照语言划分:Python、Java、C、C++

按照内外系统划分:内部系统接口和外部系统接口(又叫第三方接口)按照技术应用划分:HTTP协议Web Service、RESTful、RPC远程过程调用型、Web Socket、FTP、Dubbo协议

二、接口的访问形式

三、Http协议

  1. 概念:是超文本传输协议,规定了互联网中传输数据的标准

  2. 特点:

    • 支持客户端/服务端模式:客户端与服务器通信、服务端与服务端通信
    • 简单快捷:传输的协议不多
    • 灵活:能够传输除了文本数据以外的很多数据,如json、html、xml等,能跨平台、跨语言
    • 无连接:不会与服务器保持长连接,每次请求都需要建立新的连接
    • 无状态:不会保存数据
  3. 组成部分

    请求报文:

    • 请求行

      请求方法

      • GET:获取和查询数据
      • POST:新增数据
      • PUT:修改数据
      • DELETE:删除数据

      其他请求方法还有:OPTIONS、HEAD、PATCH等等

      URL由5个部分组成:

      • 协议部分:
        常见的包括:http、ftp、https等等
      • 域名部分:localhost
        决定了要访问的服务器网络地址,这个域名会被DNS服务器解析成IP地址,通过IP来定位服务器资源地址。
      • 端口部分:http协议默认80端口(默认:没有填写端口时,就采用默认的端口)
        端口部分就是服务器内部的应用的端口。(https的默认端口是:443端口,ftp的默认端口是21端口)
      • 资源路径:/index.php
        定位到服务器具体代码的路径
      • 查询参数:m=Home&c=User&a=do_login&t=0.005897075..
        是具体传递的数据
    • 请​求头

      请求头主要由键值对组成,每行一对

      结构: 键名:属性值

      常用的请求头有:

      • User-Agent:描述客户端的浏览器信息

      • Content-Type:描述请求体的内容格式
        Content-Type的值包括很多种,常见的有:

        • text/plain 文本格式
        • text/xml xml格式
        • x-www-form-urlencoded 表单格式;不能上传文件、图片、音视频
        • multipart/form-data 二进制表单格式,能用来上传文件、图片、音视频
        • application/json
    • 请求体

      用来传输数据。和URL中的查询参数不一样的是,URL的数据直接可以在浏览器地址栏看到,而请求体不能直接看到。并且,请求体能传输的数据类型、数据大小都比URL要多

    相应报文

    • 状态行

      状态码: 描述服务器处理请求的结果;状态码由3位数字组成,可以分成5类

      • 1XX:代表客户端请求已经被接收了,继续处理

      • 2XX:代表客户端请求被服务器按照内部逻辑正确处理成功了,但是并不代表业务成功

      • 3XX:资源已经失效,重定向到新的地址

      • 4XX:客户端错误

      • 5XX:服务器错误

    • 响应头

    • 响应正文

      HTTPS:

      • 概念:HTTPS是HTTP协议+SSL/TLS(Secure Sockets Layer/Transport Layer Security )认证,是一个基于安全套接字的超文本传输协议

      • 作用:主要用于对网络传输的数据进行加密,保证数据的安全性、完整性、一致性。

      • HTTP与HTTPS的区别:

        • HTTP 的 URL 以 http:// 开头,而 HTTPS 的 URL 以 https:// 开头

        • HTTP 是不安全的,而 HTTPS 是安全的

        • HTTP 标准端口是 80 ,而 HTTPS 的标准端口是 443

        • HTTP 无需加密,而 HTTPS 对传输的数据进行加密

        • HTTP 无需证书,而 HTTPS 需要认证证书

        • HTTP 免费,HTTPS收费

        • 加密:

          • 概念:

          明文:直接能看懂的文本内容

          密文:经过加密后的内容

          加密:对数据进行处理,使数据被外部人员无法理解,但是自己人能够理解。

          加密算法:对数据加密时,所采用的相关计算方法。

          密钥:加密数据和解密数据时,使用的一个字符串,这个字符串起到钥匙的作用。

          签名:使用一种超运算加密算法,如MD5,SHA256算法对数据进行运算,形成摘要,然后截取一部分摘要得到的字符串就是签名。签名的作用是确保数据没有被篡改。

        • 加密方式:

          • 对称加密:

            加密和解密过程完全对称的加密。

            典型的对称加密算法是:DES,3DES加密算法。

            特点:
            
                1)加密解密完全对称,加密时使用的密钥和解密时使用的密钥是同一个密钥
            
                2)性能好,速度快
            
          • 非对称加密:

            加密和解密过程不对称的加密。

            非对称加密算法有:RSA加密算法

            非对称加密算法中,把密钥分成了公钥和私钥。其中公钥是指公开的密钥,私钥是指不公开的密钥。

            使用非对称加密算法加密数据的过程中:

            • 公钥加密的数据,只能用私钥解密。
            • 私钥加密的数据,只能用公钥解密。

            特点:

            1)因为加解密不完全对称,所以恶意攻击者不能获取全部信息,更能保证数据的安全性

            2)性能比对称加密差

            作用:一般用公钥加密客户端生成要用的对称加密算法中的密钥,保证对称加密的密钥不被公开.

        • SSL/TLS认证:

          SSL认证是一个非常复杂的过程,主要可以认为分成以下几个步骤完成:

          • 客户端发送请求,要与服务器建立HTTPS连接
          • 服务器返回SSL证书和加密算法给客户端
          • 浏览器根据内置的SSL证书验证权威结构来验证SSL证书是否合法、有效
          • 浏览器内部使用对称加密算法生成一个密钥,用于加密传输数据
          • 浏览器使用SSL证书中的公钥即为Pa,加密对称加密算法生成的密钥记为Ra,得到一个Pa(Ra)加密过后的字符串,然后把它发送给服务器
          • 服务器使用私钥解密Pa(Ra)加密过后的字符串,得到Ra
          • 后期,客户端和服务器都使用Ra加密数据,保证数据的安全性。

        • 扩展:TCP/UDP协议

          概念:

          • TCP是一个传输层协议,英文全称是:Transmission Control Protocol

          • UDP也是一个传输层协议,英文全称是:User Datagram Protocol

          区别:

          • TCP可以保证传输数据的安全性、可靠性(TCP通过三次握手建立连接,四次挥手断开连接)
          • UDP只保证传输效率,不保证安全性、可靠性(UDP是直接发送数据,而不会关注客户端是否收到数据内容)

      • ​扩展:TCP三次​​握手和四次挥手

        三次握手:

        • 客户端主动与服务器建立连接
        • 客户端设置SYN序号为1,并发送一个seq序号,seq序号随机产生
        • 服务器将SYN和ACK位置都设置为1,并把客户端的序号+1,表示应答,然后生成自己的随机序号seq
        • 客户端恢复一个ACK,ACK的值是服务器发送的SYN+1

        注意:SYN=1,ACK=0是一个连接请求报文的意思。SYN=1,ACK=1是响应报文的意思

        四次挥手:

        • 客户端发送关闭连接请求FIN=1 和 seq
        • 服务器返回ACK,ACK的值是客户端的seq的值加1
        • 服务器返回FIN 和 seq
        • 客户端返回ACK,ACK的值是服务器seq的值+1

四、会话管理

概念:通过一个字符串表示用户的未登录/已登陆的状态

实现方式:

  • 基于Cookie

    概念:Cookie是一个容器,主要用于存放数据大小比较小的临时数据。

    特点:

    • 不能跨域:我们访问服务器时,都会通过域名来访问。例如:www.test.com,这个www.test.com是域名。如果是我们www.test.com域名指向的服务器发送的cookie,那么这个cookie就不能在www.baidu.com中使用。

    • 存在有效期Cookie存在有效时间,超过规定的时间后就会失效。可以设置Cookie的配置,来让cookie永久不失效。不设置有效期时,cookie默认是一个session cookie,浏览器不关闭,cookie不失效

    • 大小:默认4KB大小

    • 有数量限制:不同浏览器限制的cookie数量不一样,为了保证兼容性,做最低兼容,cookie数量不要超过二十个。

    • 对字符编码有限制

      ps:base64编码:一种编码格式,目的不是加密,是为了保证数据能够在互联网稳定的传输

    流程:

  • 基于Session

  • 基于token

posted @   蓝鸢  阅读(106)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示