# 性能优化篇(二)
# 前端性能优化之服务器
阶段一
- 准备卸载页面
- 重定向开始
- 卸载页面开始 2和3同时开始
- 卸载页面结束
- 重定向结束 (之前页面资源释放结束)
- 开始发起请求 (如果上一个页面为空则跳过之前)
- 查看本地缓存
阶段二
- 查询域开始 (DNS)
- 这部分可以优化--下面介绍和cdn配合
- 查询域结束
- 建立连接(TCP)
- 加密(可选)
- 连接建立成功 (握手结束)-->体现出网络质量
- 发起请求
- 服务器接收到请求,并发起相应
- 服务器处理
- 服务器发送数据结束 (可优化点服务器处理速度)
阶段三
- 解析dom开始 (阶段三可优化)
- 解析dom结束
- 加载依赖
- dom事件绑定
- dom准备完成
- dom渲染完毕
- 执行onload事件内的脚本
主要优化的是阶段三
# DNS
- DNS 是Domain Name System, 域名系统,用于将域名转换为IP。
- 顶级域名 --> baidu.com (com根域名)
- 二级域名 --> www.baidu.com
- 域名资源记录 (域名和IP对应)
- 域名服务器
- 域名解析 (文本转换为域名)
# 域名
- x.x.x.x 文本 ipv4
- x.x.x.x为int,4个字节。一个字节范围0~255。
- F:F:F:F:F:F 文本 ipv6
- ip域名其实就是一个编号
# 域名服务器
- 分级维护dns服务器
- 首先解析域名 先查看缓存(缓存高频域名)
- 请求根域名服务器 (目前全球13台,中国没有,只有镜像)直解析根域名,然后返回结果并告诉你请求的下一个服务器
- 请求TLD 服务器 解析顶级域名 然后返回结果并告诉你请求的下一个服务器
- 请求名称服务器 返回结果
所以在访问高频服务器时候会快,低频的会慢。
记录类型 | 含义 |
---|---|
SOA:(StartOf Authority, 起始授权记录) | ⼀一个区域解析库有且只能有⼀一个SOA记录,⽽而且必须放在第⼀一条 |
A记录(主机记录) (ipv4域名对应ip) | ⽤用于名称解析的重要记录,将特定的主机名映射到对应主机的IP地址上 |
CNAME记录(别名记录) (指向A记录) | ⽤用于 返回另⼀一个域名,即当前查询的域名是另⼀一个域名的跳转, 主要⽤用于域名的内部 跳转,为服务器器配置提供灵活性 |
NS记录(域名服务器器记录) (名称服务器上图5) | ⽤用于返回保存下⼀一级域名信息的服务器器地址。该记录只能设置为域名,不不能设置为IP地 址。 |
MX(邮件记录) | ⽤用于返回接收电⼦子邮件的服务器器地址 |
IPv6主机记录(AAAA记录) (ipv4域名对应ip) | 与A记录对应,⽤用于将特定的主机名映射到⼀一个主机的IPv6地址。 |
# TCP三次握手与四次挥手
上图iso标准,应用层、表示层和会话层在TCP协议中为一层,应用层。
发起请求
url-->添加请求头等包装-->tcp协议进行打包-->继续打包。。。
接受请求
逐条解压-->只留数据
TCP: 面向连接,比较稳定,基于数据报加了限制(保证接通)
UDP:不稳定,基于数据报,没有限制(只管发送)
源端口,应答端口
数据号,应答号,偏移量
offset告诉那些是正式数据
三次握手
三次握手是为了建立连接,三次就建立成功了所以只有三次握手。
四次挥手
四次挥手是为了断开连接
- 客户端请求断开连接
- 服务端发送收到请求
- 服务端处理完数据之后告诉客户端断开连接(这时候服务器有可能数据没有发送完毕)
- 客户端发送收到客户端已断开连接
# CDN
网略优化的一种,CDN-->数据分发网略
图左 非CDN
图右 CDN
给图左服务器建立若干个镜像。
镜像加DNS解析机制构成了CDN。