一文搞懂│http 和 https 的通信过程及区别
两者的区别
- 端口: http端口号是80,https端口号是443
- 传输协议: http是超文本传输协议,属于明文传输;https是安全的超文本传输协议,是经过 SSL 加密后的传输协议
- 安全性: https使用了TLS/SSL加密,比http更加的安全
- 证书: https需要申请ca证书
HTTP的通信过程
- 理解: 作为标准的 C/S模型,http协议总是由客户端发起,服务端进行响应。
- DNS解析,域名系统- DNS将域名解析成IP地址
- 建立 TCP连接,进行TCP的三次握手
- 客户端发送请求
- 服务端响应客户端,向客户端发送数据
- 通信完成,TCP连接关闭
HTTPS的通信过程
- 理解: https通信是建立在ssl连接层之上的请求和响应,客户端将加密组件发送到服务端,服务端进行匹配后将数字证书等信息发送到客户端,客户端进行证书验证,验证通过后使用非对称加密对数据的密钥进行协商,协商后得到对称的加密密钥,然后使用对称算法进行TCP链接,然后与客户端进行三次握手后,进行数据传输,传输完成后,四次挥手,断开链接,通信结束。
- 客户端和服务端通过 TCP建立连接,并发送https请求。
- 服务端响应请求,并将数字证书发送给客户端,数字证书包括公共秘钥、域名、申请证书的公司。
- 客户端收到服务端的数字证书之后,会验证数字证书的合法性。
- 如果公钥合格,那么客户端会生成 client key,一个用于进行对称加密的密钥,并用服务端的公钥对客户端密钥进行非对称加密。
- 客户端会再次发起请求,将加密之后的客户端密钥发送给服务端。
- 服务端接收密文后,会用私钥对其进行非对称解密,得到客户端秘钥。并使用客户端秘钥进行对称加密,生成密文并发送。
- 客户端收到密文,并使用客户端秘钥进行解密,获取数据。

一文搞懂│http 和 https 的通信过程及区别的更多相关文章
- 一文搞懂HTTP和HTTPS协议
		1.什么是协议? 网络协议是计算机之间为了实现网络通信而达成的一种"约定"或者"规则",有了这种"约定",不同厂商的生产设备,以及不同操作系 ... 
- 一文搞懂List 、List<Object>、List<?>的区别以及<? extends T>与<? super T>的区别
		前段时间看<Java编程思想>泛型时对 <? extends T>与<? super T>很懵逼,接着看到泛型与集合的更蒙蔽,随后又翻开<码出高效>时, ... 
- 基础篇|一文搞懂RNN(循环神经网络)
		基础篇|一文搞懂RNN(循环神经网络) https://mp.weixin.qq.com/s/va1gmavl2ZESgnM7biORQg 神经网络基础 神经网络可以当做是能够拟合任意函数的黑盒子,只 ... 
- 一文搞懂vim复制粘贴
		转载自本人独立博客https://liushiming.cn/2020/01/18/copy-and-paste-in-vim/ 概述 复制粘贴是文本编辑最常用的功能,但是在vim中复制粘贴还是有点麻 ... 
- 三文搞懂学会Docker容器技术(中)
		接着上面一篇:三文搞懂学会Docker容器技术(上) 6,Docker容器 6.1 创建并启动容器 docker run [OPTIONS] IMAGE [COMMAND] [ARG...] --na ... 
- 三文搞懂学会Docker容器技术(下)
		接着上面一篇:三文搞懂学会Docker容器技术(上) 三文搞懂学会Docker容器技术(中) 7,Docker容器目录挂载 7.1 简介 容器目录挂载: 我们可以在创建容器的时候,将宿主机的目录与容器 ... 
- 一文搞懂 js 中的各种 for 循环的不同之处
		一文搞懂 js 中的各种 for 循环的不同之处 See the Pen for...in vs for...of by xgqfrms (@xgqfrms) on CodePen. for &quo ... 
- 一文搞懂指标采集利器 Telegraf
		作者| 姜闻名 来源|尔达 Erda 公众号  导读:为了让大家更好的了解 MSP 中 APM 系统的设计实现,我们决定编写一个<详聊微服务观测>系列文章,深入 APM 系统的产品.架构 ... 
- 一文搞懂Google Navigation Component
		一文搞懂Google Navigation Component 应用中的页面跳转是一个常规任务, Google官方提供的解决方案是Android Jetpack的Navigation componen ... 
- 一文搞懂RAM、ROM、SDRAM、DRAM、DDR、flash等存储介质
		一文搞懂RAM.ROM.SDRAM.DRAM.DDR.flash等存储介质 存储介质基本分类:ROM和RAM RAM:随机访问存储器(Random Access Memory),易失性.是与CPU直接 ... 
随机推荐
- MYSQL进阶学习笔记
			MySQL在Linux中的使用: 1.查看mysql在linux的安装版本 mysqladmin –version 2.mysql服务的启动与停止 (1).启动: service mysql star ... 
- elasticsearch之metric聚合
			1.背景 此篇文章简单的记录一下 elasticsearch的metric聚合操作.比如求 平均值.最大值.最小值.求和.总计.去重总计等. 2.准备数据 2.1 准备mapping PUT /ind ... 
- python3使用OCR识别图片
			放假三天,闲来无事,想学下python爬虫.本想跟着网上教程操作一遍,奈何安装使用过程中出现一堆问题,并且在网上搜了一堆复制黏贴的答案,关键都不能起作用,最后终于找到一篇生效,为了以后不至于再经历这种 ... 
- [OpenCV实战]49 对极几何与立体视觉初探
			本文主要介绍对极几何(Epipolar Geometry)与立体视觉(Stereo Vision)的相关知识.对极几何简单点来说,其目的就是描述是两幅视图之间的内部对应关系,用来对立体视觉进行建模,实 ... 
- 火山引擎DataLeap数据调度实例的 DAG 优化方案
			更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 实例 DAG 介绍 DataLeap 是火山引擎自研的一站式大数据中台解决方案,集数据集成.开发.运维.治理.资产管理能力 ... 
- 原生js实现jsonp
			有时候用js封装个小工具需要一些已经被封装好的函数,比如jq的jsonp 但是原生小工具如果仅仅为了这个就导入一个上百kb的jQuery不划算 然后我去网上找,一大堆废文,还是自己发一篇记录一下吧 下 ... 
- 从Babel开始认识AST抽象语法树
			前言 AST抽象语法树想必大家都有听过这个概念,但是不是只停留在听过这个层面呢.其实它对于编程来讲是一个非常重要的概念,当然也包括前端,在很多地方都能看见AST抽象语法树的影子,其中不乏有vue.re ... 
- Word 交叉引用 给参考文献、图片题注添加引用
			参考文献引用 假如想在红色[1]处添加引用,实现点击[1]跳到参考文献[1]. 首先需要将参考文献进行编号. 在需要插入引用的地方,选择插入-->交叉引用 点击插入 最后可以把[1]调成上标 上 ... 
- 蓝桥真题——最短路 & 门牌制作
			题目1 最短路 标签:填空题 2019 省赛 如下图所示,G 是一个无向图,其中蓝色边的长度是 1.橘色边的长度是 2.绿色边的长度是 3. 则从 A 到 S 的最短距离是多少? 答案 由图可得,最短 ... 
- Java入门与进阶P-5.3+P-5.4
			数组的元素 有效的下标 最小的下标是0,最大的下标是数组的元素个数-1 可是编译器不会检查看你是否用了有效的下标 但是如果运行的时候出现了无效的下标,可能会导致程序终止 定义数组变量 元素个数必须是整 ... 
