一、前端网络面试题总结
网络相关知识是前端开发的核心内容之一,面试中通常会考察协议、网络模型、性能优化及常见网络问题的处理。以下是针对前端网络面试题的总结:
(一)协议森林(大话网络协议)
-
网络协议分类:
- 应用层:HTTP、HTTPS、WebSocket、DNS 等。
- 传输层:TCP、UDP。
- 网络层:IP、ICMP。
- 数据链路层:ARP、MAC。
-
典型问题:
-
输入
ping IP
后敲回车,发包前发生的过程:
- DNS 查询:将域名解析为 IP 地址。
- 构造 ICMP 数据包:生成请求包。
- 路由查找:找到发送路径并发出数据包。
- 目标主机响应:返回 ICMP 回应包。
-
(二)网络通信模型
-
七层模型(OSI)与四层模型(TCP/IP):
- 七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
- 四层模型:网络接口层、网络层、传输层、应用层。
-
子网掩码与网络划分:
- 通过子网掩码(如 255.255.255.0)确定主机数与网络范围。
- 子网内通信无需路由,跨子网需通过网关。
(三)TCP/IP 协议
-
TCP 特性:
-
可靠传输、面向连接。
-
三次握手
:确保双方都准备好通信。
- 第一次握手:客户端发送 SYN。
- 第二次握手:服务器发送 SYN+ACK。
- 第三次握手:客户端发送 ACK。
-
四次挥手:确保双方关闭通信。
- 第一次:客户端发送 FIN。
- 第二次:服务器返回 ACK。
- 第三次:服务器发送 FIN。
- 第四次:客户端返回 ACK。
-
-
UDP 特性:
- 无连接、不可靠但效率高,常用于实时传输(如视频、语音)。
(四)HTTP/HTTPS 协议
-
HTTP 特性:
- 无状态、明文传输、请求-响应模式。
-
HTTPS 工作原理:
- 使用 TLS/SSL 协议加密通信。
- 通过 CA 颁发的数字证书验证服务器身份。
- 客户端与服务器协商生成对称加密密钥。
-
HTTPS 是否一定安全?
-
不一定安全
,可能的风险:
- 中间人攻击:拦截通信并伪造证书。
- 不安全的证书颁发:信任非权威 CA。
-
防范措施:确保证书合法、校验 CA 的可信度。
-
(五)WebSocket 协议
-
工作层级:
- 工作在七层模型的应用层,基于 TCP 协议。
-
与 HTTP 的关系:
- 使用 HTTP 协议完成初始握手,之后升级为 WebSocket 协议。
-
特性:
- 全双工通信,适合实时应用。
-
应用场景:
- 点对点通信:通过唯一标识连接用户。
- 广播通信:通过服务端发送消息至多个客户端。
(六)常见网络问题与解决
-
CDN 的工作原理:
- 将资源缓存到离用户最近的节点,提高访问速度。
-
运营商劫持与防范:
- 劫持方式:插入广告、重定向流量。
- 防范措施:使用 HTTPS、DNS 加密(如 DoH/DoT)。
-
网络性能问题定位:
- Ping:测试与目标主机的连接延迟。
- Traceroute:检查网络路径中的延迟和问题节点。
- F12 开发者工具:分析请求时间、DNS 解析时间、网络耗时等。
-
Token 与 Cookie 的区别:
- Cookie:由服务器生成,保存在客户端,用于会话管理。
- Token:由服务器生成,通常存储在客户端(如 LocalStorage),携带用户认证信息,常用于无状态认证。
(七)常见问题解析
- 支付宝和微信的离线支付:
- 离线支付基于二维码或 NFC,通过本地缓存的动态密钥或凭证实现。
- 离线交易会在网络恢复后同步到服务器。
- HTTPS 抓包:
- 使用代理工具(如 Charles、Fiddler)安装中间人证书拦截 HTTPS 流量。
- DNS 泄露隐私与防范:
- 隐私泄露原因:DNS 请求通常未加密,可能被监视。
- 防范方法:使用加密 DNS(如 DNS over HTTPS)。
- 192.168.0.1 与 192.168.1.1 的通信:
- 通过路由器的网关进行跨子网通信,具体路径由路由表决定。
- 浏览器访问
192.168.3.4:8088
的过程:- 浏览器解析 URL,判断协议为 HTTP。
- 通过 DNS 将域名解析为 IP 地址。
- 建立 TCP 连接(三次握手)。
- 发送 HTTP 请求到目标服务器。
- 服务器返回 HTTP 响应,浏览器解析内容并渲染页面。
二、总结
前端网络知识的核心在于理解高层次的网络通信原理,掌握常见协议(HTTP、WebSocket、TCP 等)的特点,具备基本的网络性能优化能力,并能解决实际问题。通过对网络基础的深入理解,能够帮助开发者定位问题并提高应用的性能和可靠性。