IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> http和https建立连接的过程 -> 正文阅读

[网络协议]http和https建立连接的过程

http和https建立连接的过程

http建立连接的过程

在浏览器地址栏输入url之后。

  1. DNS域名解析(域名=>IP地址):

    DNS缓存: 浏览器DNS缓存 操作系统DNS缓存

    分级查找: 本地域名服务器 根域名服务器 COM顶级域名服务器 Google.com域名服务器

  2. 建立TCP连接(三次握手)->为什么两次握手不可以,一定要三次

    过程:

    ? ? ? ? 客户端 -> 服务端:SYN=1(请求建立连接) 第一次握手:seq=n(序列号)

    ? ? ? ? 客户端 <- 服务端:SYN=1(同意建立连接) ack=n+1(确认收到消息) seq=x(服务端自己的序列号)

    ? ? ? ? 客户端 -> 服务端:SYN=0(表示开始发送信息) ack=x+1(确认收到信息) seq=n+1

    三次握手的意义:

    ? ? ? ? 1.客户端具有发送信息的能力

    ? ? ? ? 2.服务端具有发送信息和接受信息的能力

    ? ? ? ? 3.客户端具有接受信息的能力

  3. 客户端发送http请求

  4. 服务端处理请求,返回http报文

  5. 客户端收到报文,解析渲染页面

    (1). 浏览器收到HTML文档,HTML相当于网页的框架结构

    ? ? ? ? 解析HTML过程:

    ? ? ? ? ? ? ? ? 首先,浏览器得到的是显示字节内容的html文件

    ? ? ? ? ? ? ? ? 浏览器将季节内容转换为字符文件

    ? ? ? ? ? ? ? ? 将字符转换为token(符号标签)

    ? ? ? ? ? ? ? ? 将token转变为节点对象,然后将节点对象连接起来形成DOM树

    (2).在HTML文档解析的过程中,会遇到link标签外链的css文件这时候会请求并解析css文件,但并不会阻塞第一步解析HTML文件

    ? ? ? ? 解析css过程:

    ? ? ? ? ? ? ? ? 前几个步骤与HTML文档解析相似:字节文件>字符文件>token>节点对象

    ? ? ? ? ? ? ? ? 最后一步会将节点对象结合为CSSOM树

    (3).在HTML解析时,遇到link标签外链的js文件或者script内的js代码时

    ? ? ? ??解析JS文件的过程:

    ? ? ? ? ? ? ? ? 1).浏览器会请求js代码,并返回,这时候HTML文件的解析会停下来,

    ? ? ? ? ? ? ? ? 2).但是CSS文件的解析不会停止,所以会构造出CSSOM树,

    ? ? ? ? ? ? ? ? 3).在构建CSSOM树的时候,返回的js文件并不会执行,在CSSOM树构建完成,才会运行JS文件。

    ? ? ? ? 4).JS文件执行结束后,HTML继续解析并构建出DOM树,进行下一步。

    (4)前两步结束之后,DOM树和CSSOM树会结合生成渲染树render树。

    ? ? ? ? 注意点:DOM树会将所有节点都组成树结构,而render树会将所有显示的阶段组成树结构。

    (5)布局:获取渲染树结构、节点位置和大小

    (6)绘制,根据render树和布局绘制页面

  1. 解除连接(四次挥手)

    客户端 -> 服务端:发送释放连接报文,并停止发送数据

    客户端 <- 服务端:收到连接释放报文,并发出确认消息。进入close-wait(等待关闭)状态

    客户端 <- 服务端:发送数据完毕,并发出释放连接报文

    客户端 -> 服务端:收到连接释放报文,并发出确认消息

HTTPS建立连接的过程

在浏览器地址栏输入url之后。

  1. DNS域名解析(域名=>IP地址):

    DNS缓存:

    ? ? ? ? 浏览器DNS缓存

    ? ? ? ? 操作系统DNS缓存

    分级查找:

    ? ? ? ? 本地域名服务器

    ? ? ? ? 根域名服务器

    ? ? ? ? COM顶级域名服务器

    ? ? ? ? Google.com域名服务器

  2. 建立连接(与http三次握手的区分)

    客户端->服务端:客户端发送支持的加密协议即版本,ssl、tls。

    客户端<-服务端:服务端从客户端发来的协议中筛选合适的加密协议,并返回证书,证书中有公钥。

    客户端->服务端:客户端使用根证书验证证书的合法性,并生成对称密钥,通过证书中的公钥加密,发送到服务端。

    客户端<-服务端:服务端使用私钥解密,获取对称密钥,使用对称密钥加密确认信息,并发送至客户端。

    最后,客户端在收到服务端用私钥加密过后的确认信息之后,两端即可使用对称加密方式进行交流了。

后续过程与http相同,只不过在每次请求是需要加密,接受数据后进行解密。?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-22 15:00:59  更:2021-09-22 15:01:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:29:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码