一图详解!接口测试之HTTP协议与HTTPS协议的传输过程

news2024/11/7 11:28:18

目录

前言:

1、HTTP协议

1.1 协议

1.2 原理

1.2.1 客户端

1.2.2 服务器端

1.3 请求报文

1.3.1 报文格式

1.3.2 请求报文方法

1.4 响应报文

1.4.1 报文格式

1.4.2 响应报文状态码

2、HTTPS协议

2.1 加密算法

2.2 数字签名

2.3 传输过程

2.4 流程图


前言:

在接口测试开发中,HTTP 和 HTTPS 协议是两种常见的网络协议,在接口传输中扮演着重要的角色。了解两种协议的传输过程,可以帮助我们更好地进行接口测试。

主要体现在: 言简意赅,一言中的,最主要的可以 看图识字;

1、HTTP协议

1.1 协议

定义

一种分布式、协作式,面向应用层的超媒体信息系统

特点

一种通用的、无状态(stateless) 的协议

表现形式

可输入的和可协商性的,允许系统能被建立而独立于数据传输

应用场景

应用于 超文本传输,名称服务器和分布对象管理系统等

1.2 原理

1.2.1 客户端

主要职能

一个向服务器发送请求;

接收服务器返回的报文并解析成友善的信息提供给我们阅读;

应用类型

    浏览器

    桌面应用,app应用

1.2.2 服务器端

处理接收客户端发来的请求过程

        ①建立链接

        如果客户端已经打开一条到服务器的持久链接,则可以直接使用,否则客户端需要在服务器打开一条新的链接;

        ②接收请求报文

        链接上有数据时,Web服务器会从网络链接中读取数据,并将请求报文的内容解析出来;

        ③处理请求

        当请求被接收和表示后,服务器可根据请求报文进行处理;

        ④访问资源

        请求处理完成后,就开始访问这些存储在服务器上的物理文件;

        ⑤构建响应

        服务器识别资源后,构造响应报文

        ⑥发送响应

        服务器将响应发送给客户端

        ⑦记录日志

        请求结束,Web服务器会生成一条记录

1.3 请求报文

1.3.1 报文格式

Request报文结构,3部分组成

        请求行(request line)

        请求头部(header)

        主体(body)

1.3.2 请求报文方法

常用请求报文方法:

        GET:获取资源

        POST:传输实体主体

        PUT:传输文件/更新资源

        DELETE:删除资源

        HEAD:获取报文首部(同GET,只是不返回主体)

        OPTIONS:咨询支持的方法(查询针对URL指定资源)

        TRACE:追踪路径(让Web服务将之前请求通信环回给客户端方法)

        CONNECT:要求用隧道协议链接代理(与代理间建立隧道,实现用隧道协议进行TCP通信)

        更多请求方法,可参照小鱼的《HTTP常用方法》这篇博文。        

1.4 响应报文

1.4.1 报文格式

Request报文结构,3部分组成

    响应状态(response code)

    响应头(response header)

    响应主体(response body)

1.4.2 响应报文状态码

响应报文状态码,分5类:

        1xx:信息状态码

        2xx:成功状态码

        3xx:重定向状态码

        4xx:客户端错误状态码

        5xx:服务器错误状态码

详细的状态码信息,可参照小鱼的《HTTP状态码总结》这篇博文。

2、HTTPS协议

2.1 加密算法

对称加密

    采用单一钥匙加密方法,即同一个钥匙既可以加密也可以解密。

非对称加密

    需要公钥和私钥同时出现,即如果公钥是加密,私钥就是解密。

2.2 数字签名

数字签名

    ①是只有信息的发送者才能产生的别人无法伪造的一段数字串,

    ②这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明

2.3 传输过程

共分7步,如下:

        步骤一、客户发起HTTPS请求;

            —>浏览器里输入https://xxxxxx 

        步骤二、服务器端初步响应;

            —>采用HTTPS协议的服务必须有一套数字证书(就是公钥和私钥);        

        步骤三、客户端解析证书;

            —>验证证书是否有效,是否合法,包含网站地址与正在访问地址一致等           

        步骤四、客户端发送加密信息

            —>客户端发送的是用证书加密后的公钥        

        步骤五、服务器解密信息

            —>服务器用公钥解密后,得到客户端传来的公钥,然后把内容通过该值进行对称加密        

        步骤六、服务器发送加密后的信息

            —>服务器发送用公钥进行对称加密的信息        

        步骤七、客户端解密信息

            —>客户端用之前生成的私钥解密服务器端传过来的信息,客户端就获取的解密后的内容

2.4 流程图

 

作为一位过来人也是希望大家少走一些弯路,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N4P3http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Ksr0Xk0w1DgVzgtyayCH9Uceq2s9E2od&authKey=MoAExSahO5oL2zJfMyKmkDaFi%2FWg5tRNxJRemwEFcv%2Fj8WUYS0WH3AOxsgpKrpQs&noverify=0&group_code=574737577

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/624820.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kafka运维监控:Kafka-Eagle安装

kafka自身并没有集成监控管理系统,因此对kafka的监控管理比较不便,好在有大量的第三方监控管理系统来使用,常见的有: Kafka Eagle KafkaOffsetMonitor Kafka Manager(雅虎开源的Kafka集群管理器) Kafka …

安装和配置Canal

安装和配置Canal 下面我们就开启mysql的主从同步机制,让Canal来模拟salve 1.开启MySQL主从 Canal是基于MySQL的主从同步功能,因此必须先开启MySQL的主从功能才可以。 这里以之前用Docker运行的mysql为例: 1.1.开启binlog 打开mysql容器…

电商打工人的饭碗,AIGC还端不走

文 | 螳螂观察 作者 | 鲸胖胖 以ChatGPT、Midjourney、文心一言等为代表的AIGC产品,已经在全球掀起新一轮的AI技术变革新浪潮,再度刷新了人们对AI的认知,多个行业的商业模式和生态必然在未来会被彻底重构。 前不久,36氪就测使用…

【博客647】MetricsQL(VictoriaMetrics)和PromQL(Prometheus)的不同之处

MetricsQL(VictoriaMetrics)和PromQL(Prometheus)的不同之处 1、如果对PromSQL不熟悉可以先看以下链接 https://valyala.medium.com/promql-tutorial-for-beginners-9ab455142085 2、与PromQL相比,以下功能在MetricsQL中的实现方式不同,这也改善了用户…

AI实战营第二期 第六节 《MMDetection代码课》——笔记7

什么是MMDetection? MMDetection 是被广泛使用的检测工具箱,包括了目标检侧、实例分割、全景分割等多个通用检测方向,并支持了 75 个主流和前沿模型, 为用户提供超过 440 个预训练模型, 在学术研究和工业落地中拥有广泛应用。该恇…

帧布局叠放视图

线性视图只会将视图组织到一行或一列中&#xff0c;每个视图都在屏幕上有自己的位置不会重叠。如果希望布局能够重叠&#xff0c;有个很简单的做法就是使用帧布局。 本文实现一个图像上显示文本的例子。 定义帧布局 <?xml version"1.0" encoding"utf-8&quo…

C++类和对象-5

本篇博客来讲述C类和对象中的最后一些内容&#xff0c;即友元和const的使用方法。 目录 1.友元 1.1引入 1.2内容 1.2.1友元函数 1.2.2友元类 1.3内部类 2.const修饰 2.1内容 2.1.1常数据成员 2.1.2常成员函数 2.1.3常对象 2.2示例 1.友元 1.1引入 在讲述友元之…

使用DR对流量进行管理 subnet子集的定义

这里vs可以控制往svc1和svc2流量走的比例&#xff0c;但是这里只假设往svc3里面走。现在想控制的是往pod1和pod2各走多少流量。 流量到了svc3的时候还是使用的是kube-proxy对流量进行转发。 了解DR DR定义的是经过VS之后已经到达service的流量&#xff0c;主要可以用于&#xf…

【深度学习入门:基于Python的理论与实现】

文章目录 神经网络从感知机到神经网络神经网络的例子复习感知机激活函数登场 激活函数sigmoid函数阶跃函数的实现sigmoid函数的实现 sigmoid函数和阶跃函数的比较ReLU函数 3层神经网络的实现符号确认代码实现 输出层的设计恒等函数和softmax函数输出层的神经元数量 手写数字识别…

【ArcGIS Pro二次开发】(36):度分秒转十进制度

经纬度坐标的表达方式比较常用的一般有2种&#xff0c;【度分秒和十进制度】。 在成果展示中&#xff0c;以【度分秒】居多&#xff0c;但如果要将坐标导入ArcGIS中&#xff0c;则一般需要用到【十进制度】&#xff0c;这个转换可以在Excel中进行&#xff0c;也可以在ArcGIS中的…

火龙果MM32F3273G8P开发板MindSDK开发教程4 - 滴嗒定时器Systick的配置

火龙果MM32F3273G8P开发板MindSDK开发教程4 - 滴嗒定时器Systick的配置 1、Systick寄存器 Systick是ARM内核的一个外设&#xff0c;所以在不同芯片的代码上移植比较方便&#xff0c;他总共有4个寄存器&#xff0c; 从Systick定义中可以看到&#xff1a; typedef struct {__I…

Android系统的启动流程(二):SystemServer处理过程

Android系统的启动流程&#xff08;二&#xff09;&#xff1a;SystemServer处理过程 摘要 在上篇文章中&#xff0c;我们已经将启动的进程推进到了ZygoteInit的main中&#xff0c;在ZygoteInit中我们已经知道它的main方法中的forkSystemServer方法将会启动系统服务&#xff0…

机器学习 | 支持向量机SVM | 概念了解向

概念了解向&#xff0c;参考视频&#xff1a; 【小萌五分钟】机器学习 | 支持向量机 SVM &#x1f4da;最大间隔分类器 如下图有两种不同颜色的点。我需要一个分类器告诉我&#xff0c;假设在下图中新加入一个点&#xff0c;应该将它分类至红点还是蓝点。考虑加入一条决策边界…

【4 微信小程序学习 - WXSS-WXML-WXS语法】

1 WXSS相关 1 小程序样式的写法 2 WXSS支持的选择器 3 wxss的扩展 – 尺寸单位RPX rpx是为了屏幕自适应. 4 逻辑判断 wx:if – wx:elif – wx:else 对应v-if <!-- 2.条件判断 --> <view wx:if"{{score > 90}}">优秀</view> <view wx:…

程序员兼职接单的平台列表

最近有很多程序员朋友说想要找一份合适的兼职工作&#xff0c;却苦于找不到一个正规靠谱的平台。今天我特意整理了一份超详尽的程序员兼职接单平台list&#xff0c;各位可以按需选择&#xff0c;也希望大家都能找到心仪的工作~ 中高端开发者必备的兼职接单平台&#xff1a;程序…

Ubuntu 登录提示信息`Message of The Day`(MOTD)定制与开关

一、效果 登录Ubuntu的时候&#xff0c;在控制台可能会弹出一系列提示消息&#xff0c;有欢迎消息、系统信息、更新信息等等&#xff1a; 这些提示消息被称为Message of The Day&#xff0c;简称MOTD。 Ubuntu与其它Linux版本不太一样&#xff0c;它引入了MOTD 的概念。 这些…

如何使用SonarQube+ SonarScanner分析项目

前言&#xff1a; 六一儿童节要玩程序员的玩具&#xff0c;动手试一试挺有意思的 目录 1. 安装sonarqube 2. 获取Sonarqube令牌 3. 下载安装SonarScanner 5. SonarScanner分析项目 7. 查看分析结果 8.常见问题 版本信息&#xff1a; Sonarqube7.6Sonar-scanner-4.8.0 …

[操作系统]关于进程的管理

首先注明:仍然是复习阶段,所以和课本可能有些许冲突和不同,只是图谱来自于王道考研2022操作系统,旨在快速梳理操作系统的基本知识 1.进程的定义,概念和特征: 多道程序环境下,多个程序并发执行,因此他们将会失去封闭性,不适宜于管理,所以引入了进程这种概念. 进程是程序的一次…

Python自动化测试:pytest实现关键字驱动

在上一篇文章中&#xff0c;我编写了一个非常简单的关键字驱动程序&#xff0c; 不过这个程序只是跑通了功能&#xff0c;还有很多可以优化的地方&#xff0c;这篇文章我想通过 pytest 来简化自动化测试用例的编写&#xff0c;使用的是比较基础的 pytest 功能。 下篇文章我再写…

spark安装部署

spark安装部署 需要指导私信 所有节点安装scala&#xff0c;安装scala需要安装openjdk-8-jre&#xff08;当前用户如果没有sudo权限可将其加入sudo组里&#xff09;,以ubuntu2204-LTS为例&#xff1a; $ sudo apt update $ sudo apt-get install openjdk-8-jre-headless -y (红…