前端面试要点(八):网络

127 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

前言

在面试和复习过程中总结的一些前端知识点,记录下来,风格较简洁,尽量涵盖内容要点和简单例子。本文是前端面试系列第八篇:网络,持续更新...

一、七层网络模型

从下到上:物理层 -> 数据链路层 -> 网络层 -> 传输层 -> 会话层 -> 表示层 -> 应用层

二、https 加密过程

https 的 优势:内容保密性、内容准确性、来源可靠性。

https 其实是 http 披上了一层加密的外壳(SSL)。

加密过程:

  1. 客户端申请 https 通信;
  2. 服务器响应并向客户端传递证书;
  3. 客户端验证证书,获取公钥,生成对称密钥,用公钥加密后把对称密钥传给服务器;
  4. 服务器收到消息,用私钥解密,拿到对称密钥,SSL 通道建立完成;
  5. 客户端和服务器用对称密钥进行通信;
  6. 客户端断开连接。

三、三次握手过程

  1. 第一次握手:客户端给服务器发送一个 SYN 报文;
  2. 第二次握手:服务器收到 SYN 报文之后,会应答一个 SYN+ACK 报文;
  3. 第三次握手:客户端收到 SYN+ACK 报文之后,会回应一个 ACK 报文,服务端收到后建立连接。

四、四次挥手过程

  1. 第一次挥手:客户端发送一个 FIN 报文;
  2. 第二次挥手:服务端收到 FIN 之后,会发送 ACK 报文;
  3. 第三次挥手:如果服务端也想断开连接了,和客户端的第一次挥手一样,发给 FIN 报文;
  4. 第四次挥手:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,服务端收到后断开连接。

五、http2.0 做了哪些改进

  • 采用二进制传输数据,而不是文本格式,提升了传输速度;
  • 多路复用,1.x 实现并发需要建立多个 TCP 连接,2.0 让所有通信都在一个 TCP 连接上完成;
  • 对头部进行压缩

六、http2.0 有哪些不足,http3.0 做了哪些改进

不足:

  1. TCP 队头阻塞问题(由于单个数据包丢失而造成的阻塞)
  2. TCP 建立连接延时(TCP 握手也会影响传输效率)

http3.0 基于 UDP,实现了类似 TCP 的多路数据流、传输可靠性等功能,称为 QUIC 协议。

七、webSocket 的建立过程

webSocket 的出现,使得浏览器具备了实时双向通信的能力。

建立过程: webSocket 复用了 HTTP 的握手通道,具体指的是,客户端通过 HTTP 请求与 WebSocket 服务端协商升级协议,协议升级完成后,后续的数据交换则遵照 WebSocket 的协议。