关于http/https协议

一、定义

http协议,即超文本传输协议(Hypertext Transfer Protocol)。

https协议,基于http协议,主要由两部分组成http + SSL_TLS。比http协议安全,能提高传输过程安全性。

二、http协议与其他网络层

      tcp/ip五层网络模型(如图1)中,http协议位于应用层。http协议确定了服务器与客户端之间数据交换的方法及内容格式。

                    (图1)

http协议是基于tcp协议的,就是说http请求要能成功被双方接收或响应,必须先成功建立tcp连接。在成功建立tcp连接后,http数据报文才能在客户端和服务器之间传输。

三、http协议报文结构

      客户端与服务端之间通过交换http报文实现数据和信息交换,http请求报文与响应报文都有固定格式。接口自动化测试通过工具或代码构造http请求报文,以获得响应报文,通过分析响应报文,以判断测试是否通过。

3.1 请求报文

      http请求报文格式(如图2):

          (图2)

      (1)请求行:方法、URL(统一资源定位符)、HTTP版本

      (2)请求首部(请求头):一系列“健”-“值”对。

      (3)请求实体(请求体):请求内容

        下面,对请求行、请求头、请求体中对接口自动化测试比较关键的部分进行分析。

         1、请求行

             ~ http方法       

             类似SQL语言增删改查操作数据,http协议有操作服务器数据的方法。

              1.1. get方法,查询数据

              1.2 post方法,提交数据

              面向公众开放的软件中,一般只提供get和post方法。

              1.3 put方法,更新数据

              1.4 delete方法, 删除数据

              还有其他的不常用方法,此处省略。

             ~ http版本 

              目前市面上大部分应用的是http1.1

          2、请求头

               由一系列健-值对组成。其中比较重要的有:

               User-Agent:发送请求客户端软硬件版本信息

               Content-Type:说明请求正文格式

               Cookie:缓存信息,如用户身份认证信息,也存放在cookie中

               Referer: 指明从哪一个请求切换进入本请求,常用于反爬虫

               Host: 主机名

          3、请求体:

              一般包含服务器要求的参数信息

3.2 响应报文

     响应报文格式如图(图3)所示:

       (图3)

       (1)状态行(响应行)

       (2)响应首部(响应头)

       (3)响应实体(响应体)

         ~ 响应行:

           响应行,声明了http版本、响应状态码、短语。

           1.1 响应状态码

               1XX : 收到请求,需要请求者继续操作,不常用

               2XX : 请求成功。常用的如200、201

               3XX : 重定向。 常用如301永久跳转、302临时跳转

               4XX : 请求出错,提示请求信息有误。常用400请求出错如语法协议,403无权限访问、404访问数据不存在,405不支持的方法

               5XX : 服务器出错。常用如500服务器内部错误、503服务器宕机。

           1.2 短语。 对请求结果进行简要描述

         ~ 响应头

           一系列 “键”-“值”对。常用有:

          Content-Type : 响应正文的MIME格式

          Expires : 缓存过期时间

          Cache-control : 功能类似Expires,说明缓存过期时间

          Server : 服务器名称

         ~ 响应体

          返回的数据正文。

          常见格式Content-Type包括:

           text/html   html格式

           text/plain   纯文本格式

           text/xml     xml格式

        

           image/gif   gif图片

           image/jpeg  jpeg图片

           image/png  png图片

    

           application/json   json格式

           application/pdf    pdf格式

           application/octet-stream   二进制流形式

           application/x-www-form-urlencoded    form表单默认提交格式,会转换为key-value格式

           multipary/form-data 表单上需要上传文件的格式

          

原文地址:https://www.cnblogs.com/xiaoxionghuihui/p/13954100.html