网络
HTTP 状态码
1xx 表示消息
2xx 表示成功
3xx 表示重定向
4xx 表示请求错误
5xx 表示服务器错误
200 请求成功;201 成功创建;204 无内容;
301 永久移动;302 临时移动;
401 未授权;403 禁止请求;404 未找到;405 禁用方法;408 超时;
502 错误网关;503 服务不可用;504 网关超时;505 HTTP 版本不支持
HTTP 和 HTTPS 的区别?HTTPS 为什么更安全?
HTTP 是明文传输的超文本传输协议;HTTPS 是在 HTTP 的基础上加入了 SSL/TLS 加密层,能够实现身份校验和加密传输。
区别
| 维度 | HTTP | HTTPS |
|---|---|---|
| 协议特点 | 明文传输 | HTTP + SSL/TLS |
| 安全性 | 容易被窃听、篡改、伪造 | 支持加密、完整性校验、身份认证,更安全 |
| 默认端口 | 80 | 443 |
| 性能 | 只需要 TCP 建立连接,开销更小 | 还需要 TLS 握手,开销更高一些 |
| 证书 | 不需要证书 | 需要 CA 颁发的证书 |
过程
可以简化成下面几步:
- 浏览器向服务器发起 HTTPS 请求
- 服务器返回自己的证书和公钥
- 浏览器验证证书是否合法
- 验证通过后,浏览器生成一个随机密钥
- 浏览器用服务器公钥加密这个随机密钥,并发送给服务器
- 服务器用私钥解密,拿到这个随机密钥
- 之后双方使用这个会话密钥进行对称加密通信
HTTPS安全原理
混合加密(非对称传密钥,对称传数据)
摘要算法生成数字指纹保证消息完整
数字签名(私钥加密指纹,公钥解密验证)实现身份认证
第三方数字证书
TCP UDP
总结
TCP 是面向连接、可靠传输的协议;UDP 是无连接、不保证可靠性的协议。
区别
| 维度 | TCP | UDP |
|---|---|---|
| 连接方式 | 面向连接,需要先建立连接 | 无连接,直接发送数据 |
| 可靠性 | 可靠传输,保证不丢失、不重复、按序到达 | 不保证可靠性,可能丢包、乱序 |
| 传输方式 | 面向字节流 | 面向报文 |
| 传输效率 | 较低,控制机制多 | 较高,开销小 |
| 首部开销 | 较大,最少 20 字节 | 较小,8 字节 |
| 控制机制 | 有流量控制、拥塞控制 | 没有流量控制和拥塞控制 |
| 通信模式 | 一般用于一对一通信 | 支持一对一、一对多、多对多 |
TCP 和 UDP 的核心区别就是:TCP 更可靠但更重,UDP 更轻量但不可靠。实际选择取决于业务更看重“可靠性”还是“实时性”。
OSI 七层模型是什么?
| 层级 | 名称 | 主要作用 | 常见协议 / 例子 | 数据单位 |
|---|---|---|---|---|
| 7 | 应用层 | 直接为应用程序提供网络服务 | HTTP、HTTPS、DNS、FTP | 报文 |
| 6 | 表示层 | 数据格式转换、加密、压缩 | SSL/TLS、JPEG、ASCII | 报文 |
| 5 | 会话层 | 建立、管理、终止会话 | Session | 报文 |
| 4 | 传输层 | 端到端传输,保证可靠性、顺序、重传 | TCP、UDP | 数据段 |
| 3 | 网络层 | IP 寻址和路由选择 | IP、ICMP | 数据包 |
| 2 | 数据链路层 | MAC 寻址、成帧、差错检测 | 以太网、交换机 | 帧 |
| 1 | 物理层 | 比特流传输,负责电信号/光信号传输 | 网线、光纤、网卡 | 比特 |