跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

网络通信核心协议详解:TCP、UDP 与 HTTP/HTTPS

网络通信核心协议涵盖传输层与应用层关键机制。重点对比 TCP 可靠性与 UDP 高效性差异,解析 HTTP 版本演进及 HTTPS 加密原理。通过端到端流程实例,展示 DNS 解析、三次握手、TLS 协商及连接释放全过程,帮助开发者理解网络协同工作机制。

咸鱼开飞机发布于 2026/3/29更新于 2026/8/1746 浏览
网络通信核心协议详解:TCP、UDP 与 HTTP/HTTPS

网络通信的核心协议,不仅是后端开发的必备技能,也是前端优化、架构设计乃至安全防护的基础。虽然 OSI 七层模型是理论框架,但在实际应用中,TCP/IP 四层模型更为广泛使用,涵盖应用层、传输层、网络层和链路层。本文将重点讨论应用层协议 HTTP/HTTPS 和传输层协议 TCP/UDP。

传输层协议详解

TCP(传输控制协议)

TCP 是互联网中最重要、应用最广泛的传输层协议之一,以其可靠性和有序性著称。

核心特性:

  • 面向连接:通信前必须建立连接,通信结束后释放连接
  • 可靠传输:通过确认、重传、校验等机制确保数据正确到达
  • 流量控制:滑动窗口机制防止发送方淹没接收方
  • 拥塞控制:慢启动、拥塞避免、快速重传、快速恢复算法

三次握手建立连接:

文章配图

这个过程确保了双方都准备好收发数据,并协商初始序列号。

四次挥手释放连接:

文章配图

双向连接的独立关闭保证了数据传输的完整性。

UDP(用户数据报协议)

UDP 是另一种传输层协议,以简单和高效为设计理念。

核心特性:

  • 无连接:发送数据前不需要建立连接
  • 不可靠传输:不保证数据到达,不保证顺序
  • 无状态:不维护连接状态
  • 开销小:头部仅 8 字节,比 TCP 的 20 字节更精简

TCP vs UDP 对比分析

特性TCPUDP
连接性面向连接无连接
可靠性高(确认、重传)低(无机制)
顺序性保证顺序不保证顺序
速度较慢(建立连接、确认)快(无握手)

选择策略:

  • 选择 TCP:需要可靠传输、数据完整性优先的场景
  • 选择 UDP:实时性要求高、可容忍少量丢包、需要多播的场景
  • 混合使用:部分应用在 UDP 上实现可靠传输机制

应用层协议详解

HTTP(超文本传输协议)

协议演进:

  • HTTP/1.0:每个请求/响应后关闭连接
  • HTTP/1.1:持久连接、管道化、分块传输
  • HTTP/2:多路复用、头部压缩、服务器推送
  • HTTP/3:基于 QUIC,解决队头阻塞

常用方法:

  • GET:获取资源
  • POST:提交数据
  • PUT:更新资源
  • DELETE:删除资源
  • PATCH:部分更新
  • HEAD:获取头部信息
  • OPTIONS:查询支持方法

状态码分类:

  • 1xx:信息性状态码
  • 2xx:成功(200 OK、201 Created、204 No Content)
  • 3xx:重定向(301 Moved Permanently、304 Not Modified)
  • 4xx:客户端错误(400 Bad Request、403 Forbidden、404 Not Found)
  • 5xx:服务器错误(500 Internal Server Error、502 Bad Gateway)

HTTP/2 核心改进:

  1. 二进制分帧:将消息分解为独立帧,交错发送
  2. 多路复用:一个连接并行多个请求/响应
  3. 头部压缩:HPACK 算法减少头部大小
  4. 服务器推送:服务器主动推送客户端可能需要的资源

HTTPS(安全超文本传输协议)

HTTPS = HTTP + SSL/TLS,为 HTTP通信提供加密、完整性和身份验证。

加密原理:

  1. 对称加密:加密解密使用相同密钥,速度快算法:AES、DES、3DES
  2. 非对称加密:公钥加密,私钥解密,安全性高算法:RSA、ECC、DH
  3. 混合加密:结合两者优势,用非对称加密交换对称密钥

数字证书与 PKI:

  • CA(证书颁发机构):受信任的第三方
  • 数字证书:包含公钥、持有者信息、CA 签名
  • 证书链:根证书 → 中间证书 → 服务器证书

TLS 握手过程:

  1. ClientHello:客户端支持的 TLS 版本、密码套件、随机数
  2. ServerHello:服务器选择 TLS 版本、密码套件、随机数,发送证书
  3. 证书验证:客户端验证服务器证书
  4. 密钥交换:客户端生成预主密钥,用服务器公钥加密发送
  5. 计算密钥:双方用随机数和预主密钥计算会话密钥
  6. 完成消息:验证握手过程完整性

HTTPS 优势:

  • **防窃听:**加密传输内容
  • **防篡改:**数字签名保证完整性
  • **防冒充:**证书验证身份
  • **SEO 优势:**搜索引擎排名因素

协议间的协同工作

端到端通信流程实例

我们以访问 "https://www.example.com" 为例:

  1. DNS 解析:UDP 查询 www.example.com 的 IP 地址
  2. TCP 连接:与服务器 443 端口三次握手建立连接
  3. TLS 握手:协商加密参数,验证证书
  4. HTTP 请求:发送加密的 HTTP 请求
  5. HTTP 响应:接收加密的 HTTP 响应
  6. 渲染页面:浏览器解析 HTML,加载资源
  7. 连接关闭:四次挥手释放连接

常见通信模式

短连接模式(HTTP/1.0 默认):

请求 -> 响应 -> 关闭连接 新请求 -> 新连接 -> 响应 -> 关闭连接
  • 优点:服务器资源占用少
  • 缺点:连接建立开销大

持久连接模式(HTTP/1.1 默认):

建立连接 请求 1 → 响应 1 请求 2 → 响应 2 ... 请求 N → 响应 N 关闭连接
  • 优点:减少连接建立开销
  • 缺点:服务器需维护连接状态

HTTP/2 多路复用:

连接 ├─ 流 1:请求 1 → 响应 1
     ├─ 流 2:请求 2 → 响应 2
     ├─ 流 3:请求 3 → 响应 3
     └─ 流 4:服务器推送资源
  • 完全解决队头阻塞
  • 头部压缩减少开销

目录

  1. 传输层协议详解
  2. TCP(传输控制协议)
  3. UDP(用户数据报协议)
  4. TCP vs UDP 对比分析
  5. 应用层协议详解
  6. HTTP(超文本传输协议)
  7. HTTPS(安全超文本传输协议)
  8. 协议间的协同工作
  9. 端到端通信流程实例
  10. 常见通信模式
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 毕业论文写作的那些坎儿,智能工具能帮多少?
  • PyTorch 实战:基于文本引导的图像生成技术与 Stable Diffusion 实践
  • 自进化医疗智能体:动态记忆与持续运行 Python 架构编程(下)
  • Elasticsearch 进阶实战:JavaRestClient 操作索引与文档及海量数据批处理指南
  • 2025 年免费数字人工具评测:五大 AI 平台对比
  • C++ 关联式容器详解:map 与 set
  • Qwen-Image 与 Midjourney V6 实测:中文理解与细节还原能力对比
  • Cogito-v1-preview-llama-3B 镜像优势:预置中文高质量 LoRA 微调权重
  • 从 vw/vh 到 clamp(),前端响应式设计的痛点与进化
  • Ubuntu 下使用 Docker 安装任意版本 ROS 及一键启动教程
  • MiniMax MCP Server:多模态生成服务器,支持视频/语音/图像生成
  • Java 中间件:Dubbo 服务降级(Mock 机制)
  • 使用 Rufus 制作启动盘安装 Windows 与 Ubuntu 系统全流程教程
  • Axios 错误处理进阶封装:实现网络层数据与状态解耦
  • 数据库迁移 TCO 全景账本:MySQL 替代中的隐性成本与工程化工具链实测
  • Python Web 开发指南:Flask 框架从入门到实战
  • 大模型提示工程:掌握提问驱动 AI
  • 冯诺依曼体系结构与操作系统初理解
  • Windows 系统 Python 安装与配置详细教程
  • SDXL Prompt Styler:提示词风格化增强实战指南

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online