一、DNS相关知识点
1. 浏览器DNS缓存
- 核心需求:解析速度越快越好
- Chrome浏览器查看/操作入口:chrome://net-internals/#dns
- 解析逻辑:搜索域名(domain)后,返回IP地址数组
- 底层支撑:采用分布式服务器集群
- IP地址特点:返回的是Nginx代理服务器IP,而非直接的应用服务器IP
- 代理与负载均衡:代理服务器背后反向代理成百上千台应用服务器(类比“媒婆”,负责匹配请求与服务器);通过轮询机制,判断服务器负载,实现负载均衡
- 地域优化:采用地域特性机房,优先在离用户最近的区域安排服务器集群,提升访问速度
2. 本地操作系统DNS缓存
-
核心配置文件:hosts文件(本地域名与IP地址的映射配置文件,作用关键)
-
应用场景:开发者本地测试(例:抖音开发者本地有官网代码,可通过配置hosts实现带域名的本地测试)
-
配置示例:localhost douyin.com(将抖音域名映射到本地)
-
关联知识点:cookie、token(与本地访问验证相关)
-
Windows系统操作:
- hosts文件路径:C:\Windows\System32\drivers\etc\hosts
- 编辑方式:管理员权限打开(win+r调出运行框),输入notepad C:\Windows\System32\drivers\etc\hosts
3. 特殊域名解析
- 部分特殊域名(如localhost)无需DNS解析,可直接映射
- 配置注意:# 符号为注释,配置时无需携带(例:127.0.0.1 www.baidu.com 正确,#127.0.0.1 www.baidu.com 为注释,不生效)
二、HTTP响应与传输相关
1. 200状态码与Content-Type
- 常见响应:200 + Content-Type: text/html(表示请求成功,返回HTML类型内容)
- 后续流程:返回下载内容后,进入传输(transport)阶段
2. 传输通道建立:TCP三次握手
-
核心作用:建立可靠的TCP传输通道,是HTTP传输的基础
-
具体流程:
- A(客户端)向B(服务器)发送请求:SYN(序号j)
- B向A响应:ACK(确认号j+1),同时可合并自身的SYN请求,确认双方发送/接收能力
- 补充:理论上双方发送与接收确认需4次交互,第二次握手可合并,最终简化为3次
三、OSI七层协议
HTTP协议属于应用层协议,基于OSI七层架构实现数据传输,各层核心职责如下:
-
物理层:传输二进制数据(0和1),依赖物理介质(如网线、光纤)
-
数据链路层:封装mac地址+数据,mac地址是上网设备的唯一物理ID
-
网络层:封装IP地址+mac地址+数据,负责将数据包送达目标主机
-
传输层:制定数据传输规则,核心协议为UDP和TCP
-
UDP(用户数据报协议):
- 特点:快速传输,无确认、重发、排序机制,允许数据丢失
- 适用场景:视频、音频等实时传输场景
- 补充:数据包有大小上限,大文件会拆分为多个数据包,分批次、分通道并发传输,可能出现丢失(需TCP/IP补充重发、排序)
-
TCP:
- 特点:传输可靠,速度稍慢,确保数据完整到达
- 核心机制:序号(解决数据包乱序问题)、确认(解决数据包丢失问题,超时重传)
- 适用场景:浏览器请求、邮件等对数据可靠性要求高的应用
- 数据封装:TCP(序号等)+ IP地址 + mac地址 + 数据
-
四、前端性能相关(FP与TTFB)
1. FP(First Paint,首次渲染时间)
- 定义:从页面加载到首次开始绘制的时长,是前端性能核心指标之一
- 计算公式:FP = TTFB + HTML DOM树构建时间 + CSSDOM时间 + 渲染树(RenderTree)构建时间 + 布局树构建时间 + 首次渲染时间
2. TTFB(Time To First Byte,首字节时间)
- 定义:从浏览器发送请求到收到服务器返回第一个字节的时间
- 组成部分:DNS解析时间(IP查找+负载均衡) + TCP/TLS连接时间 + 服务器执行时间(含慢查询) + 响应下载时间
3. 前端性能核心意义
- 关键指标:页面加载速度、打开速度,直接影响用户留存、付费欲望及PV、UV数据
- 优化方向:网络优化(基于OSI七层架构、IP、TCP/UDP、HTTP、TLS等协议),定位并解决Web性能问题
五、数据包传输相关
1. 互联网本质与数据包作用
- 互联网:由一套理念和不同版本协议组成的体系架构
- 数据传输载体:数据包(又称数据报),大文件会拆分为多个小数据包传输,提升带宽利用率和并发效率
- 优化方式:利用带宽、多路复用技术,拆分数据为二进制数据帧传输
2. 各层对数据包的处理
-
网络层(IP协议):通过IP地址将数据包送达目标主机,可能出现数据包丢失、出错问题
-
传输层:负责确保数据到达目标应用
- UDP:通过端口号定位目标应用,简单快速,适合实时应用,但无法满足HTML等Web资源的严格传输需求
- TCP:解决UDP的不足,通过序号、确认、重传机制,确保数据包完整、有序到达
3. 补充:TCP四次挥手
- 作用:终止TCP连接,双方需分别确认关闭发送和接收通道,共4次交互(无法像三次握手那样合并,因双方发送和接收通道需独立确认关闭)。
- 核心前提:TCP是双向通信协议,连接建立后双方可同时发送和接收数据,因此关闭连接时,需分别关闭“发送通道”和“接收通道”,需四次交互完成。
- 具体流程: 第一次挥手(客户端→服务器):客户端主动发起关闭请求,发送FIN报文(表示客户端不再发送数据,但仍可接收服务器数据),序号为u。
- 第二次挥手(服务器→客户端):服务器收到FIN报文后,先发送ACK确认报文(确认号为u+1),表示已收到客户端的关闭请求,此时服务器仍可向客户端发送剩余数据。
- 第三次挥手(服务器→客户端):服务器发送完所有剩余数据后,主动向客户端发送FIN报文(表示服务器不再发送数据,可关闭自身发送通道),序号为v。
- 第四次挥手(客户端→服务器):客户端收到服务器的FIN报文后,发送ACK确认报文(确认号为v+1),表示已收到服务器的关闭请求;客户端需等待一段时间(确保服务器收到确认)后,彻底关闭连接,服务器收到确认后立即关闭连接。
补充说明:四次挥手无法合并的核心原因的是,第二次挥手仅确认“客户端发送通道关闭”,服务器此时可能仍有数据未发送,需完成数据传输后,再发起第三次挥手关闭自身发送通道,两次交互无法合并。