- Android中的通信协议总结
网络请求库
项目规模 / 语言 | 推荐库 |
---|---|
Java 项目 | Retrofit + OkHttp |
Kotlin 单平台 | Retrofit 或 Fuel |
Kotlin 多平台 | Ktor Client |
小型项目 / 老项目 | Volley |
网络协议
应用场景 | 推荐协议 |
---|---|
普通数据请求 | HTTPS |
实时通信(IM/推送) | WebSocket |
远程调用(高性能) | gRPC |
文件传输 | FTP / HTTPS |
IoT设备 | MQTT |
Quic(Quick UDP Internet Connections)
由 Google 开发,基于 UDP 而不是 TCP
用于取代 HTTP/2 和 TCP + TLS 的组合
已被 IETF 接纳为标准协议(HTTP/3 正式使用 QUIC)
核心特点
- ✅ 基于 UDP:避免 TCP 建立连接的三次握手延迟
- ✅ 0-RTT 握手:可实现几乎“瞬时”连接建立
- ✅ 集成 TLS 1.3 加密:加密默认启用,安全性更强
- ✅ 多路复用且无队头阻塞(Head-of-Line Blocking)
- ✅ 连接迁移支持:网络切换(如 WiFi → 4G)时连接不中断
适用场景
- 高延迟网络(如移动网络、海外访问)
- 实时视频、语音传输
Spdy
- 由 Google 提出,设计目标为加快网页加载速度
- 是 HTTP/2 的前身和基础
核心特点
- 多路复用:一个 TCP 连接上同时发送多个请求。
- 头部压缩:减少 HTTP 请求头冗余信息。
- 优先级控制:重要资源优先加载。
- 服务器推送:服务端可主动向客户端推送资源。
现状
- SPDY 最终演化为 HTTP/2,其核心特性已被继承。
- Google Chrome 自 2016 年起移除对 SPDY 的支持。