🌈🌈🌈🌈🌈🌈🌈🌈
欢迎关注公众号(通过文章导读关注:【11来了】),及时收到AI 前沿项目工具及新技术
的推送
发送资料
可领取深入理解 Redis 系列文章结合电商场景讲解 Redis 使用场景
、中间件系列笔记
和编程高频电子书
!文章导读地址:点击查看文章导读!
感谢你的关注!
🍁🍁🍁🍁🍁🍁🍁🍁
Http 的内容是明文传输的,铭文数据经过中间代理服务器、路由器、wifi 热点等多个物理节点,如果被劫持会导致传输内容完全暴露,因此需要对信息进行加密
Https 是一种通过计算机网络进行安全通信的传输协议,Https 经由 Http 进行通信,利用 SSL/TLS
来加密数据包,HTTPS 在内容传输的加密上使用的是 对称加密
,非对称加密
只作用在证书验证阶段
Https 的信任基于预先安装在操作系统中的证书颁发机构(CA)
那么通过 Https 进行通信的流程如下:
证书验证阶段
数据传输阶段
具体的一些细节可以了解一下,我也发现了一篇比较好的文章,可以看一下:彻底搞懂HTTPS的加密原理
网络分层可以简化复杂性,提高 模块化程度
和 可维护性
分层之后,各个层次负责特定的功能,每一层不需要关心上层或下层的具体细节,如果需要修改,直接对某个层进行修改即可,不会影响到其他层,这种模块化设计可以使网络系统扩展性更强
并且在网络出现问题时,由于分层的设计,可以根据每一层的职责更容易地定位到问题所在的层次,而不需要了解整个系统
物理层和数据链路层比较偏向于底层,就不说了
网络层主要的协议有:
传输层主要的协议有:
会话层主要的协议有:
表示层主要的协议有:
应用层:
TCP 三次握手和四次挥手也是网络中比较常问的问题,因为两台机器之间需要通信就需要去建立 TCP 连接,建立 TCP 连接就是通过 TCP 三次握手建立的,通过四次挥手关闭 TCP 连接
TCP 三次握手和四次挥手的细节这里就不说了,之前写过一篇文章,TCP 三次握手和四次挥手
那么面试官可能会问,问什么一定要三次握手呢?
首先,简单来理解的话,通过三次握手,客户端和服务器端都可以证明自己的 接收
和 发送
能力都是正常的,之后才可以正常通信
如果非要举出一个例子,在谢希仁版《计算机网络》中是这样说的,如果 client 发送的第一个 SYN 包并没有丢失,只是在网络中滞留,以致于延误到连接释放以后的某个时间才到达 server。本来这是一个早已失效的报文,但 server 收到此失效报文后,就误认为是 client 再次发出的一个新的连接,于是向 client 发出 SYN+ACK 包,如果不采用三次握手,只要 server 发出 SYN+ACK 包,就建立连接,会导致 client 没有发出建立连接的请求,因此不会理会 server 的 SYN+ACK 包,但是 server 却以为新的连接建立好了,并一直等待 client 发送数据,导致资源被浪费
那么为什么不四次握手呢?
因为三次握手后,建立正常通信就没有问题了,没有必要再继续握手,浪费网络资源
HTTP 协议在 HTTP/1.1 和 HTTP/2 版本都是 基于 TCP 协议
的,而 HTTP/3 是 基于 UDP 协议
传输的,可以根据浏览器查看 HTTP 协议到底是哪个版本的
F12 打开控制台,右键记得选择 Protocol,h2 则代表是 HTTP/2 版本的
HTTP/1 、HTTP/2 和 HTTP/3 的区别如下:
虽然 HTTP/3 版本出现了,但是我们通过浏览器发现,常用的版本还是 HTTP/1.1 和 HTTP/2,为什么呢?(历史原因,比较老的系统使用的还是 1.1 和 2 版本较多,不过目前版本 3 也在逐步推广)