当你点击电子邮件上的”发送”或加入视频通话时,实际发生什么?互联网上每次点击、消息和 API 调用都依赖网络协议。它们定义数据如何移动、谁可以交谈,以及所有如何安全发生。
基础协议
传输协议
- TCP:确保可靠交付
- UDP:优先考虑速度
- QUIC:在 UDP 上 bringing 两个世界一起
应用协议
- HTTP:通过 HTTP 请求和响应使用 TCP 请求和接收 Web 资源(HTML、图像)
- HTTP/3 (QUIC):构建在 UDP 顶部,通过多路复用数据流和减少延迟实现更快和更可靠连接
- HTTPS:使用公钥和会话密钥在 TCP 连接上加密保护 HTTP,从而保护 Web 数据
文件传输
- FTP:使用单独控制和数据通道在客户端和服务器之间上传和下载文件
- SFTP:安全文件传输
- SMB:文件共享
邮件协议
- SMTP:通过 SMTP 服务器将电子邮件从发送者传输到接收者。通常用于电子邮件交付
- IMAP:接收邮件
- POP3:接收邮件
实时通信
- WebSocket:升级 HTTP 连接到全双工通道用于实时、双向通信如实时聊天
- WebRTC:实时媒体
- MQTT:保持数据流实时
身份和访问
- OAuth:处理授权
- OpenID:处理认证
后端协议
- DHCP:动态主机配置
- NTP:网络时间协议
- ICMPv6:互联网控制消息
- LDAP:轻量目录访问协议
网络和 VPN
- WireGuard:VPN
- IPsec:VPN
微服务最佳实践
当我们开发微服务,我们需要遵循以下最佳实践:
- 为每个微服务使用单独数据存储
- 保持代码在相似成熟度级别
- 为每个微服务分离构建
- 分配每个微服务与单一职责
- 部署到容器
- 设计无状态服务
- 采用领域驱动设计
- 设计微前端
- 编排微服务
本文为学习目的的个人翻译,译文仅供参考。
原文链接:EP195: Common Network Protocols Every Engineer Should Know。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。