TCP/IP 协议栈与 HTTP 协议原理:从分层模型到报文传输全过程
网络通信是 Web 接口开发的底层基础。本文讲解 TCP/IP 四层协议栈分层职责数据包封装和解封装流程深入讲解 HTTP 协议请求报文、响应报文、HTTP 方法、状态码、无状态特性对比 HTTP/1.1、HTTP/2、HTTP/3HTTPS 加密原理附带面试高频问题适合后端开发夯实网络基础。前言所有 Web 接口、REST 接口、SSE 推送底层全部依赖 TCP/IP 协议栈HTTP 是构建在 TCP 之上的应用层协议。后端开发调试接口、排查超时、连接异常、跨域问题都需要理解这套底层网络模型。很多开发只会调用接口但不清楚数据包从客户端发出经过多层封装到达服务端的完整流转过程。OSI 七层模型是理论参考模型TCP/IP 四层模型是互联网真实使用的标准。一、TCP/IP 四层协议栈分层详解从上层到下层应用层 → 传输层 → 网络层 → 网络接口层表格分层包含协议核心职责应用层HTTP、HTTPS、DNS、FTP面向应用程序定义业务数据格式。HTTP 就是应用层协议规定请求响应报文格式传输层TCP、UDP端到端进程通信端口寻址。TCP 可靠传输UDP 无连接不可靠网络层IP、ICMP、ARP主机寻址IP 地址路由选择跨网络转发数据包网络接口层以太网、WiFi物理传输比特流封装帧网卡传输数据包封装发送端从上往下层层打包应用层HTTP 生成请求报文请求行、请求头、请求体传输层 TCP增加 TCP 头部源端口、目标端口、序列号、确认号封装 TCP 段网络层 IP增加 IP 头部源 IP、目标 IP封装 IP 数据包网络接口层封装帧头帧尾转为比特流网卡发送出去。接收端解封装自下向上解析逐层剥离头部最终把 HTTP 报文交给应用程序。TCP 核心特性HTTP 默认基于 TCPTCP面向连接、可靠传输、三次握手、四次挥手、流量控制、拥塞控制。三次握手建立连接。客户端 SYN → 服务端 SYNACK → 客户端 ACK四次挥手断开连接。双方分别关闭读写通道可靠序列号 确认应答、超时重传保证数据不丢、不乱序全双工双方可以同时收发。UDP无连接没有握手开销小不可靠。DNS、直播使用 UDP。HTTP 默认 TCPHTTP/3 使用 QUIC基于 UDP。二、HTTP 协议原理HTTPHyperText Transfer Protocol超文本传输协议应用层协议基于 TCP客户端 - 服务端请求响应模型无状态协议。无状态协议本身不记住上一次请求信息服务端无法识别两次请求是不是同一个用户。解决方案Cookie、Session、Token。1. HTTP 请求报文结构请求行方法 URL HTTP版本例GET /api/users HTTP/1.1请求头Request Headers大量 K-VHost、User-Agent、Content-Type、Cookie、Authorization 等空行必须分隔请求头和请求体请求体 BodyPOST/PUT 携带 JSON / 表单数据GET 一般没有请求体2. HTTP 响应报文结构状态行HTTP版本 状态码 描述例HTTP/1.1 200 OK响应头Content-Type、Content-Length、Set-Cookie、Cache-Control空行响应体返回 JSON、HTML、文本等业务数据3. 常用 HTTP 方法GET获取资源安全、幂等参数放 URLPOST新建资源非幂等请求体传参PUT全量更新资源幂等PATCH局部更新资源DELETE删除资源幂等安全操作不会修改服务端资源幂等多次执行结果和执行一次完全一致。4. HTTP 状态码分类2xx 成功200 OK201 Created 创建成功204 No Content 删除成功无返回体3xx 重定向301 永久重定向302 临时重定向304 Not Modified 缓存命中4xx 客户端错误400 参数错误401 未认证403 权限不足404 资源不存在405 方法不允许422 参数校验失败5xx 服务端错误500 服务内部异常502 网关错误503 服务不可用5. HTTP 版本演进HTTP/1.0短连接每次请求新建 TCP 连接HTTP/1.1默认长连接 keep-alive管线化支持分块传输目前最广泛HTTP/2二进制帧、多路复用、头部压缩、服务端推送仍基于 TCPHTTP/3QUIC 协议基于 UDP解决 TCP 队头阻塞低延迟。HTTPSHTTPTLS。TCP 三次握手之后先进行 TLS 握手加密再传输 HTTP 明文。作用传输加密、身份认证、防篡改默认端口 443HTTP 默认 80。三、HTTP 通信完整流程示例访问https://xxx.com/api/usersDNS 解析域名 → 拿到服务器 IPTCP 三次握手建立客户端和服务器 TCP 连接TLS 握手协商加密套件生成会话密钥客户端构造 HTTP 请求报文加密后发送服务端解密解析 HTTP 报文执行业务逻辑构造 HTTP 响应报文加密返回客户端解密解析响应空闲超时或者主动断开TCP 四次挥手释放连接。四、高频面试题Q1TCP 和 UDP 区别HTTP 基于哪个 ATCP 面向连接、可靠三次握手四次挥手UDP 无连接不可靠。HTTP/1.1、HTTP/2 底层 TCPHTTP/3 使用 QUIC 基于 UDP。Q2HTTP 无状态是什么意思如何解决无状态 A协议本身不保存客户端状态。使用 Cookie、Session、Token 维持会话。Q3GET 和 POST 区别 AGET 用于查询参数拼接 URL无请求体POST 新建资源数据放请求体。GET 安全幂等POST 非幂等。Q4Keep-Alive 作用 AHTTP 长连接一次 TCP 连接可以连续多次 HTTP 请求不用反复握手提升性能。结语TCP/IP 是底层传输骨架HTTP 是应用层规范。掌握分层封装、TCP 可靠传输、HTTP 报文结构是理解 REST 接口、SSE 推送、接口超时、网络异常的基础。后续 RESTful、SSE 都是建立在 HTTP 协议之上。

相关新闻

Spark集群零散知识:从Driver到YARN的TaoToken实战笔记

Spark集群零散知识:从Driver到YARN的TaoToken实战笔记

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 14:44:43 阅读更多 →
手写一个300行响应式运行时:从Proxy到依赖收集的完整实现

手写一个300行响应式运行时:从Proxy到依赖收集的完整实现

前一阵子我在一个中小型的内部工具页里做状态管理,越写越别扭:第三方状态库本身的文档没问题,但为了一个小项目要把全套概念都学一遍,action、reducer、selector、middleware,代码越拆越多,数据流转反而看不…

2026/10/18 14:44:43 阅读更多 →
RFID读写器模块怎么选?进口vs国产全面对比

RFID读写器模块怎么选?进口vs国产全面对比

🔧 硬件篇 第1讲硬件篇开篇,我们先聊最核心的部件——读写器模块。很多人做项目,第一个问题就是:模块怎么选?买进口的,怕贵。买国产的,怕不好用。我刚入行的时候,进口模块是绝对的主…

2026/10/18 14:44:43 阅读更多 →

最新新闻

HWFW_GUI华为ONT固件逆向工具环境配置指南

HWFW_GUI华为ONT固件逆向工具环境配置指南

简介:HWFW_GUI是一款面向通信设备开发与逆向分析工程师的华为ONT固件可视化编辑工具,基于C开发,专用于解析、浏览、修改及导出华为光猫(ONT)固件镜像中的子项目(如uboot、kernel、rootfs等)&…

2026/10/18 15:25:02 阅读更多 →
SwiftUI macOS开发:单选组实现、美化与流式布局实践

SwiftUI macOS开发:单选组实现、美化与流式布局实践

把iOS的SwiftUI代码直接搬到macOS上跑,第一个让我愣住的就是Picker。同一个控件,在iOS上默认是滚动选择或跳转列表,到了macOS里却变成一个干干净净的下拉框;改成Segment分段样式之后,iOS上白白胖胖的控件到了macOS上立…

2026/10/18 15:25:02 阅读更多 →
cy163客服系统22.0.0全开源版:生产级实时会话路由与三端接入底座

cy163客服系统22.0.0全开源版:生产级实时会话路由与三端接入底座

简介:聚合客服(万能客服)cy163_customerservice 22.0.0 全开源版安装更新一体包,是一款面向中小企业、开发者及技术团队的轻量级多渠道客服系统解决方案,聚焦解决客户咨询分散、响应滞后、知识复用率低等典型服务痛点。…

2026/10/18 15:25:02 阅读更多 →
Unity UI核心RectTransform详解:锚点、Pivot与屏幕适配实战

Unity UI核心RectTransform详解:锚点、Pivot与屏幕适配实战

做Unity UI开发,绕不开RectTransform。无论是摆一张图片、做按钮、搭Panel,还是处理不同分辨率下的适配,本质上都是在跟RectTransform打交道。很多初学者一上来就被Inspector里的Position(Pos X、Pos Y、Pos Z)、Width…

2026/10/18 15:25:02 阅读更多 →
老照片上色全攻略:三种实用方法一次掌握

老照片上色全攻略:三种实用方法一次掌握

黑白老照片上色这事,我做了不少年,从最早的画笔一点一点涂,到后来用图层混合模式偷懒,再到现在AI一键生成打底稿,整套流程算是踩过不少坑也攒了不少心得。这个标题其实点得很准——上色本身不难,难的是“简…

2026/10/18 15:25:02 阅读更多 →
MATLAB脑电信号预处理实战:避开基线漂移与眼电伪迹的5大深坑

MATLAB脑电信号预处理实战:避开基线漂移与眼电伪迹的5大深坑

简介:本资源是一套基于MATLAB实现脑电信号情绪分类的完整分析方案,面向生物医学工程、神经科学及人工智能交叉领域的初学者与进阶学习者,聚焦EEG信号预处理、特征提取与多情绪状态(愤怒、平静、悲伤)分类建模。压缩包共…

2026/10/18 15:24:02 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →