前言:
这节课给帮助我们建立了对计算机网络的整体认识和各种概念的初步理解
本课堂重点内容:
- 网络结构
- TCP/UDP
- HTTP1 / HTTP2 / HTTP3(QUIC)
- WebSocket
- CDN
- 安全(SSL/TLS/基础密码学)
详细知识点介绍:
计算机网络基础:
- 网络组成部分:主机:客户端、服务端,路由器,交换机等
- 网络结构:网络的网络
- 信息交换方式:电路交换和分组交换
- 网络分层:分清职责,物理层、链路层、网络层、运输层、应用层
- 网络协议:标头和载荷
协议:
- 协议的存在依赖于连接
- 协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及报文发送、接收或其他事件所采取的动作
HTTP 协议:
- 链路层 - 本地帧头部
- 链路层 - IP 协议头部
- 运输层 - TCP 协议头部
- 应用层 - HTTP 协议头部
TCP 协议格式:
Web 网络
HTTP 1.1:
无法多路复用
HTTP 2(帧):
- 前三个字节:载荷长度
- 第四个字节:类型
- 第五个字节:类型对应的flags
- 第六 - 第九字节:第1位是保留位,第2 - 32位是流 ID
- 随后的 8192 字节:载荷
HTTP 2 帧的优势:
- 调整响应传输的优先级
- 头部压缩
- Server Push
HTTP 3(QUIC):
- Quick UDP Internet Connection
- 现存网络设备对 TCP 和 UDP 的支持已经僵化
- UDP 不靠谱,但 QUIC 靠谱
- QUIC 可以为除 HTTP 协议以外的应用层协议提供支持
CDN:DNS 劫持
- 域名解析一般由网站自己处理
- 需要加速的域名则重定向到 CDN 厂商的域名解析服务处理
- CDN 厂商根据来源,确定最近的 CDN 服务器的 IP
- 用户可以直接访问最近的 CDN 服务器
WebSocket:
- 有状态的持久连接
- 服务端可以主动推送消息
- 用 WebSocket 发送消息延迟比 HTTP 低
网络安全:
- 三要素:
- 机密性:攻击者无法获取通信内容
- 完整性:攻击者对内容进行篡改时能被发现
- 身份验证:攻击者无法伪装成通信双方的任意一方与另一方通信
- 在没有提前交换密信的前提下,无法在不安全的信道交换密信
- PKI 保证普通用户无需面对面与根证书机构交换根证书
- HTTPS 使用 PKI 完成除客户端身份验证以外的特性,客户端身份验证靠 HTTP 协议实现
个人课后总结:
前端工程师每天都要面对计算机网络,对网络了解得越多,在工作中解决网络问题也就更得心应手,遇到网络问题时能快速定位问题、解决问题。