03.HTTPS的实现原理-HTTPS的工作流程
03.HTTPS的实现原理-HTTPS的工作流程
- 简介
- 1. HTTPS的工作流程
- 1.1. TCP的工作流程
- 1.1.1. 三次握手的详细步骤
- 1.1.2. 三次握手的作用
- 1.2. HTTPS的工作流程
- 1.2.1. HTTPS与TCP的关系
- 1.2.2. HTTPS的工作流程
- 2. 公钥和私钥的作用
- 3. 对称密钥的生成和交换
- 4. 对称加密和非对称加密的区别
简介
主要讲述了HTTP与HTTPS工作流程比较,以及服务器与客户机资源分配与初始化流程。首先,HTTP和HTTPS都基于TCP,但在三次握手后,HTTP直接发送请求,而HTTPS还需进行SSL/TLS握手。此外,服务器资源分配和初始化流程也包括检查资源情况、分配资源、创建连接和初始化等步骤。如果服务器回复丢失,客户机未收到确认,可能导致服务器资源耗尽。然后,重点解释了HTTPS中的TLS/SSL握手过程,强调了公钥和私钥的概念及其重要性。
1. HTTPS的工作流程
HTTPS的工作流程主要是关于S的部分,即安全部分(secure)。
HTTP本身是基于TCP的,包括其语法语义和请求方式等。
HTTPS与HTTP的区别主要在于安全性的增强,我们主要关注与安全相关的部分。
1.1. TCP的工作流程
TCP的工作流程包括三次握手和四次挥手
1.三次握手:客户机发送请求,服务器进行监听并响应,客户机进行确认。
2.四次挥手:服务器发送FIN包,客户机进行确认,然后客户机发送FIN包,服务器进行确认。
1.1.1. 三次握手的详细步骤
1.第一次握手:客户机发送请求报文段,序列号为x。
2.第二次握手:服务器收到请求后,发送确认报文段,序列号为y,确认号为x+1。
3.第三次握手:客户机收到确认报文段后,发送确认报文段,序列号为x+1,确认号为y+1。

1.1.2. 三次握手的作用
1.第三次握手的作用是确认客户机是否已收到服务器的确认报文段。
2.如果没有第三次握手,服务器无法确认客户机是否收到确认报文段,可能导致资源浪费或服务器崩溃。
3.泛洪攻击(SYN Flooding)就是利用没有第三次握手导致的服务器资源被快速分配完毕的漏洞进行攻击。
1.2. HTTPS的工作流程
1.2.1. HTTPS与TCP的关系
1.HTTP和HTTPS都是基于TCP协议的。
2.HTTPS在TCP之上添加了SSL/TLS安全协议来提供加密和身份验证。
1.2.2. HTTPS的工作流程
1.HTTPS首先建立TCP连接,然后进行SSL/TLS握手。
2.握手过程包括客户端发起请求,服务器返回公钥证书,客户端验证证书,生成对称密钥并用公钥加密发送给服务器。
3.服务器用私钥解密收到对称密钥,客户端和服务器都用对称密钥进行加密和解密。

2. 公钥和私钥的作用
1.公钥用于加密对称密钥,私钥用于解密。
2.公钥可以发给任何客户端,私钥由服务器保留。
3.公钥加密的内容可以用私钥解密,反之亦然。
3. 对称密钥的生成和交换
1.客户端生成对称密钥,并用公钥加密后发送给服务器。
2.服务器用私钥解密收到对称密钥,客户端和服务器都用对称密钥进行加密和解密。
4. 对称加密和非对称加密的区别
1.对称加密:加密和解密用同一个密钥。
2.非对称加密:加密用公钥,解密用私钥,或反之。
3.HTTPS结合使用了对称加密和非对称加密,数据传输前进行密钥交换,使用非对称加密;数据传输使用对称加密。
往期文章参考:
01.HTTPS的实现原理-HTTPS的概念
02.HTTPS的实现原理-HTTPS与HTTP的区别详解
相关文章:
03.HTTPS的实现原理-HTTPS的工作流程
03.HTTPS的实现原理-HTTPS的工作流程 简介1. HTTPS的工作流程1.1. TCP的工作流程1.1.1. 三次握手的详细步骤1.1.2. 三次握手的作用 1.2. HTTPS的工作流程1.2.1. HTTPS与TCP的关系1.2.2. HTTPS的工作流程 2. 公钥和私钥的作用3. 对称密钥的生成和交换4. 对称加密和非对称加密的区…...
vue实现批量下载文件流并压缩
为了实现文件流压缩,我们可以使用 JSZip 和 FileSaver 这两个第三方库。JSZip 是一个用于创建、读取和编辑 .zip 文件的 JavaScript 库,而 FileSaver 则用于在客户端保存文件。 JSZip:用于创建和操作zip文件。可以通过 file 方法将文件添…...
前端入门之VUE--ajax、vuex、router,最后的前端总结
前言 VUE是前端用的最多的框架;这篇文章是本人大一上学习前端的笔记;欢迎点赞 收藏 关注,本人将会持续更新。本人不是学前端的,这个是大一的时候上学的和做的笔记,那个时候学的也蒙,故这里对前端做一个总…...
安装k8s涉及命令(方便放到txt离线使用)
查看操作系统信息 uname -a # 查看所有操作系统信息 uname -s # 查看内核名称 uname -r # 查看内核版本号 uname -m # 查看机器硬件名称 cat /etc/os-release # 查看所有操作系统信息 配置hosts cat >> /etc/hosts << EOF 172.171.16.147 crawler-k8s-mast…...
FLV视频封装格式详解
目录(?)[-] OverviewFile Structure The FLV headerThe FLV File BodyFLV Tag Definition FLVTAGAudio TagsVideo TagsSCRIPTDATA onMetaDatakeyframes Overview Flash Video(简称FLV),是一种流行的网络格式。目前国内外大部分视频分享网站都是采用的这种格式. File Structure…...
搭建vue3+vant项目架构
git代码仓库,直接下载压缩包使用 1、首先要安装node.js(18.3 或更高版本) 2、创建vue3项目 npm create vuelatest然后按照自己的需要进行选择就行 到此vue3项目创建完成,接下来是搭建项目架构 3、配置Vant (移动端ui) vue3项目引入vant,…...
【Linux】进程间通信 -> 匿名管道命名管道
进程间通信的目的 数据传输:一个进程许需要将它的数据发送给另外一个进程。资源共享:多个进程之间共享同样的资源。通知事件:一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件(如进程终止时要通知父进程…...
大数据开发学习路线
编程语言: Python:数据分析、数据预处理 Java:Hadoop和许多大数据工具的基础 Scala:用于Apache Spark数据库知识: SQL和NoSQL数据库的基本概念 数据库系统如MySQL、MongoDB等操作系统: Linux基础命令和脚本…...
华为云计算HCIE笔记05
第七章:其它模式 灾备组网 高可用性组网,单核心场景下,直接在两个站点中设置一个第三方仲裁站点,两个站点同时连接到仲裁,并且连接到对方。一旦出现问题,则由仲裁站点进行判断,进行业务切换 双核…...
wordpress网站用token登入开发过程
生成跳转token 示例: function generate_login_token($user_id, $secret_key) {$payload [user_id > $user_id,timestamp > time(),];$payload_json json_encode($payload);$signature hash_hmac(sha256, $payload_json, $secret_key);return base64_en…...
Python基础知识回顾
数据类型 Python可以区分整数(integers、下文简写为int)、浮点数(float)、字符串(string)和布尔值(Boolean)等数据类型。 1)int是可正可负的整数 2)float包…...
C++--------效率和表示
C 效率和表示 效率 时间效率:在 C 中,不同的数据结构和算法有着各异的时间复杂度。例如,访问数组元素的时间复杂度是 O ( 1 ) O(1) O(1),而遍历链表查找元素的时间复杂度最坏情况下是 O ( n ) O(n) O(n)。选择合适的算法与数据…...
在 Ubuntu 服务器上添加和删除用户
在 Ubuntu 服务器上添加和删除用户通常使用命令行工具,如 adduser、useradd、deluser 等。以下是详细的步骤和说明: 添加用户 使用 adduser 命令 adduser 是一个更为友好的脚本,用于创建新用户并设置相关信息。 添加新用户 sudo adduser 用…...
安卓 SystemServer 启动流程
目录 引言 Android系统服务启动顺序 zygote fork SystemServer 进程 SystemServer启动流程 1、SystemServer.main() 2、SystemServer.run() 3、初始化系统上下文 4、创建系统服务管理 5、启动系统各种服务 总结 引言 开机启动时 PowerManagerService 调用 AudioSer…...
深度分析 es multi_match 中most_fields、best_fields、cross_fields区别
文章目录 1. multi_match 查询的类型1.1 best_fields(默认)1.2 most_fields1.3 cross_fields 2. 不同类型的示例查询示例数据: 3. 示例 1: 使用 best_fields查询:说明: 4. 示例 2: 使用 most_fields查询:说…...
中职计算机网络技术理实一体化实训室建设方案
构建理实一体化教学模式对于改善中等职业学校计算机网络技术课程的教学现状、提升教学质量和效率具有重要意义。在中职教育不断深化改革的背景下,积极推进理实一体化教学模式的发展,不仅能够提高计算机网络技术课程的教学水平,满足教育改革的…...
Java技术专家视角解读:SQL优化与批处理在大数据处理中的应用及原理
引言 在大厂架构中,提升系统性能和稳定性是技术团队的首要任务。SQL优化与批处理作为两大关键技术手段,对于处理大规模数据和高并发请求具有重要意义。本文将从Java技术专家的视角出发,深入探讨SQL优化与批处理在大数据处理中的应用及原理&a…...
数据结构(Java版)第六期:LinkedList与链表(一)
目录 一、链表 1.1. 链表的概念及结构 1.2. 链表的实现 专栏:数据结构(Java版) 个人主页:手握风云 一、链表 1.1. 链表的概念及结构 链表是⼀种物理存储结构上⾮连续存储结构,数据元素的逻辑顺序是通过链表中的引⽤链接次序实现的。与火车…...
云边端一体化架构
云边端一体化架构是一种将云计算、边缘计算和终端设备相结合的分布式计算模型。该架构旨在通过优化资源分配和数据处理流程,提供更高效、更低延迟的服务体验。 下面是对这个架构的简要说明: 01云计算(Cloud Computing) — 作为中心…...
人工智能之基于阿里云进行人脸特征检测部署
人工智能之基于阿里云进行人脸特征检测部署 需求描述 基于阿里云搭建真人人脸68个关键点检测模型,模型名称:Damo_XR_Lab/cv_human_68-facial-landmark-detection使用上述模型进行人脸关键点识别,模型地址 业务实现 阿里云配置 阿里云配置…...
IM023-将PDF文件导出jpg图片到PDF所在目录下
批量将pdf文档每页导出为jpg图片 比如A文件夹下有B、C、D、E....等文件夹,每个文件夹下都有一定的pdf文件,将程序放在A文件夹下,运行程序后会将B、C、D、E....等文件夹下每个pdf文件分别导出为jpg图片,导出的jpg图片命名方式为&am…...
救命!这些毕设太好抄了,3000+毕设案例推荐第1027期
271、基于Java的建材租赁智慧管理系统的设计与实现(论文+代码+PPT)建材租赁智慧管理系统主要功能包括:会员操作、客户资料、建材管理、计量单位、建材损坏收费标准、租赁合同、租费标准、租出登记、归还登记、丢赔管理、入库登记、租金计算、…...
为你的项目量身定制,基于快马ai生成openclaw实战集成安装方案
最近在做一个图像处理相关的项目,需要在Ubuntu服务器上集成OpenClaw来处理图像数据,同时还要和OpenCV协同工作。整个过程踩了不少坑,今天就把我的实战经验分享给大家,特别是如何利用InsCode(快马)平台来快速生成定制化的安装方案。…...
2026.4.5
线段树+lazy标记#include<bits/stdc.h> using namespace std; #define int long long #define N 100004 int num[N],tree[4*N],n,q,ans; int len[4*N],lazy[4*N]; char op; int a1,a2,a3; void updata(int xx) {tree[xx]tree[xx*2]tree[xx*21];len[xx]len[xx*…...
electron+ruoyi-vue深度整合指南:从web到桌面的完整改造方案
ElectronRuoYi-Vue企业级桌面应用深度整合实战 企业级应用从Web向桌面端迁移已成为提升用户体验的重要路径。作为国内广泛使用的开源后台管理系统,RuoYi-Vue与Electron的结合能够快速构建跨平台桌面应用。但真正实现企业级稳定运行,需要解决主进程通信、…...
AutoUnipus终极指南:2025年最简单快速的U校园全自动答题工具
AutoUnipus终极指南:2025年最简单快速的U校园全自动答题工具 【免费下载链接】AutoUnipus U校园脚本,支持全自动答题,百分百正确 2024最新版 项目地址: https://gitcode.com/gh_mirrors/au/AutoUnipus 还在为U校园平台的繁重网课任务而烦恼吗?Aut…...
深度学习图像分割技术原理与应用实践
深度学习图像分割技术原理与应用实践 【免费下载链接】unet unet for image segmentation 项目地址: https://gitcode.com/gh_mirrors/un/unet 概念解析:如何理解图像分割的核心价值? 图像分割是计算机视觉领域的关键技术,它通过将图…...
SQL数据库如何删除千万级大表数据_使用TRUNCATE与Drop策略
TRUNCATE 比 DELETE 快因不写行级日志、直接释放数据页并重置高水位线,属 DDL 操作,不可回滚、不支持 WHERE;DELETE 逐行加锁写日志,大表易锁表卡死;DROP 最快但不可逆,丢失结构与权限。TRUNCATE 为什么比 …...
解决FanControl中ADLXWrapper初始化失败的系统方法
解决FanControl中ADLXWrapper初始化失败的系统方法 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/FanControl.Re…...
释放AI潜能:在快马平台利用多模型协作构建高级任务规划Agent
今天想和大家分享一个特别有意思的实践:如何利用InsCode(快马)平台的多AI模型协作能力,快速搭建一个能处理复杂任务的智能规划Agent。这个项目特别适合想体验AI辅助开发的朋友,整个过程不需要复杂的环境配置,直接在网页上就能完成…...
