分析方法
自底向上
- 从简单开始,逐渐变复杂
- 将模块逐步拼凑成一个系统
自顶向下
- 从复杂开始,逐渐变简单
- 从复杂的系统问题入手,拆分为模块问题
网络基础
网络组成部分
- 硬件:主机、路由器、交换机等组成
- 软件:安装在终端系统的应用软件
- 协议:一系列规则、约定的集合
网络结构
网络就是把许多计算机连接到一起,而互联网则是把网络通过路由器连接在一起,因此互联网也称为网络的网络。与网络相连的计算机称为主机。
信息交换方式
- 电路交换
- 报文交换
- 分组交换
网络分层模型
网络分层模型可以分为OSI七层网络协议、TCP/IP四层协议和五层协议。各层作用以及各层的网络协议可以参考图解网络介绍 | 小林coding (xiaolincoding.com)
网络协议
HTTP
HTTP 是超文本传输协议,也就是HyperText Transfer Protocol,是应用层上的协议。图解网络介绍 | 小林coding (xiaolincoding.com)
TCP
TCP,传输控制协议,Transmission Control Protocol,是一种面向连接的、可靠的、基于字节流的传输层协议。图解网络介绍 | 小林coding (xiaolincoding.com)
UDP
UDP,用户数据报协议,User Data Protocol。图解网络介绍 | 小林coding (xiaolincoding.com)
Web应用
HTTP协议
HTTP请求报文由请求行、请求头、空行和请求体(body)组成。
HTTP响应报文由状态行、响应头、空行和响应体(body)组成。
HTTP 报文结构详解 - 知乎 (zhihu.com)
HTTP/1和HTTP/1.1
HTTP连接模型
HTTP/1.1相当于HTTP/1使用了长连接方式改善了短连接的性能开销;同时支持管道传输,只要第一个请求发出去了,不必等其回来,就可以发第二个请求出去,可以减少整体的响应时间。(多数浏览器不支持)
HTTP/2
HTTP/2 相比 HTTP/1.1 性能上的改进
- 头部压缩
- 二进制格式,分为头信息帧和数据帧
- 并发传输
- 服务器主动推送资源(server push)
HTTP/3
HTTP/2 队头阻塞的问题是因为 TCP,所以 HTTP/3 把 HTTP 下层的 TCP 协议改成了 UDP。但是UDP不可靠,但基于 UDP 的 QUIC 协议 可以实现类似 TCP 的可靠性传输。
- 无队头阻塞
- 更快的连接建立
- 连接迁移
CDN
CDN全称是Content Delivery Network,即内容分发网络。也称为内容传送网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,使用户就近获取所需内容
,降低网络拥塞,提高用户访问响应速度和命中率。一图秒懂CDN原理 - 掘金 (juejin.cn)
WebSocket
WebSocket是在HTTP协议上升级而来的。是一种基于TCP协议实现的全双工通信协议,它允许客户端和服务器之间进行双向数据传输。
HTML5 WebSocket | 菜鸟教程 (runoob.com)
WebSocket相比HTTP的优势:
- 有状态的持久连接
- 服务端可以主动推送消息
- WebSocket发送消息延迟更低
网络安全
网络安全三要素
- 机密性: 政击者无法获知通信内容
- 完整性: 攻击者对内容进行篡改时能被发现
- 身份验证: 攻击者无法伪装成通信双方的任意一方与另一方通信
HTTPS
把 HTTP 的明文换成密文,再验证身份,即 HTTPS
HTTPS = HTTP + TLS
TLS = 身份验证 + 加解密
身份验证靠 PKI
服务端身份验证靠 PKl,客户端身份验证靠 HTTP 协议