作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

目前几乎所有的应用都会跟网络打交道,所以我们了解和熟悉网络对我们后续的排错是很有必要的,我这里讲解的部分主要是我个人理解来进行讲解。
HTTP 是一种无状态、应用层的请求 - 响应协议,通常运行在 TCP/IP 之上(HTTP/3 基于 UDP)。其核心模型是客户端(如浏览器)发起请求,服务器返回响应。
无状态:每个请求独立,服务器不保留前后请求的上下文信息。为解决此问题,引入了 Cookie、Session 等机制。
可扩展性:通过 Headers(头部字段)的扩展,支持缓存、认证、内容协商等丰富功能。
版本 | 特点 | 关键问题 |
|---|---|---|
HTTP/0.9 | 仅支持 GET,响应仅为 HTML,无头部 | 过于简陋 |
HTTP/1.0 | 引入 POST/HEAD、状态码、Headers,支持多种格式 | 短连接(每次请求重建 TCP) |
HTTP/1.1 | 持久连接(Keep-Alive)、管道化、Host 头、分块传输 | 队头阻塞(HOL blocking) |
HTTP/2 | 二进制分帧、多路复用、服务器推送、头部压缩(HPACK) | 仍存在 TCP 层面的队头阻塞 |
HTTP/3 | 基于 QUIC(UDP),彻底解决队头阻塞,0-RTT 快速连接 | 部署与兼容性逐步普及 |
<method> <path> <version>
<headers>
[body]
/index.html。HTTP/1.1。Host, User-Agent, Accept, Content-Type。<version> <status-code> <reason-phrase>
<headers>
[body]
状态码(重要分类)
类别 | 示例 | 作用 |
|---|---|---|
通用头 | Cache-Control, Connection, Date | 请求与响应通用 |
请求头 | Host, User-Agent, Accept, Cookie, Authorization | 客户端声明能力或身份 |
响应头 | Set-Cookie, Location, Server, WWW-Authenticate | 服务器指示客户端行为 |
实体头 | Content-Type, Content-Length, Content-Encoding | 描述 body 信息 |
Content-Type 常见值:application/json、application/x-www-form-urlencoded、multipart/form-data、text/html
Connection: keep-alive 或默认行为。Cache-Control: max-age=<seconds> 或 Expires,直接从本地缓存取,不发请求。Last-Modified / If-Modified-Since 或 ETag / If-None-Match,询问服务器资源是否更新。客户端通过 Accept、Accept-Language、Accept-Encoding 等头声明偏好,服务器返回最匹配的版本。
Authorization: Bearer <token>。Set-Cookie 维护状态。