HTTP 超文本传输协议(HyperText Transfer Protocol) 是互联网的核心协议,也是所有网页加载、API 调用、文件传输的基础。
它定义了浏览器(客户端) 与 Web服务器 之间如何交换数据(HTML、图片、JSON、视频等)。
1. HTTP 是什么?核心特点
| 特点 | 说明 |
|---|---|
| 应用层协议 | 基于 TCP/IP(HTTP 默认端口 80,HTTPS 默认端口 443) |
| 请求-响应模型 | 客户端发起请求,服务器返回响应,一问一答 |
| 无状态(Stateless) | 每次请求相互独立,服务器不记住上一次请求的内容(Cookie/Session 解决此问题) |
| 无连接(早期) | HTTP/1.0 每次请求都要新建 TCP 连接;HTTP/1.1 支持持久连接(Keep-Alive) |
| 媒体独立 | 可以传输任意类型数据(通过 Content-Type 指定) |
| 简单灵活 | 纯文本协议,容易调试 |
2. HTTP 工作流程(请求-响应全过程)
经典流程(以访问 https://www.baidu.com 为例):
- DNS 解析域名 → 获取 IP
- 三次握手建立 TCP 连接
- 浏览器发送 HTTP 请求
- 服务器处理并返回 HTTP 响应
- 浏览器渲染页面(HTML + CSS + JS)
- 断开 TCP 连接(或保持持久连接)
3. HTTP 报文格式(最重要!)
HTTP 报文分为 请求报文 和 响应报文,结构完全一致:
请求报文示例(GET 请求)
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html
Cookie: session=abc123
Connection: keep-alive
(空行)
(GET 一般没有请求体)
响应报文示例(成功返回)
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 1234
Server: Nginx
Date: Mon, 11 Mar 2026 09:16:00 GMT
<!DOCTYPE html>
<html>
<head><title>首页</title></head>
...
4. HTTP 请求方法(8 种常用)
| 方法 | 含义 | 是否带请求体 | 幂等性 | 典型用途 |
|---|---|---|---|---|
| GET | 获取资源 | 否 | 是 | 浏览网页、获取数据 |
| POST | 提交数据 | 是 | 否 | 表单提交、登录、注册 |
| PUT | 替换/更新资源 | 是 | 是 | 修改用户信息 |
| DELETE | 删除资源 | 可选 | 是 | 删除文章 |
| HEAD | 只获取响应头 | 否 | 是 | 检查资源是否存在 |
| OPTIONS | 询问服务器支持哪些方法 | 否 | 是 | 跨域预检(CORS) |
| TRACE | 回显请求(诊断) | 否 | 是 | 测试 |
| PATCH | 局部更新 | 是 | 否 | 修改部分字段 |
5. HTTP 状态码分类(一图看懂)
| 类别 | 含义 | 常见状态码 |
|---|---|---|
| 1xx | 信息(继续处理) | 100 Continue |
| 2xx | 成功 | 200 OK、201 Created、204 No Content |
| 3xx | 重定向 | 301 永久重定向、302 临时重定向、304 未修改 |
| 4xx | 客户端错误 | 400 Bad Request、401 Unauthorized、403 Forbidden、404 Not Found |
| 5xx | 服务器错误 | 500 Internal Server Error、502 Bad Gateway、503 Service Unavailable |
6. HTTP 版本演进对比(面试必问)
| 版本 | 发布年份 | 关键特性 | 主要问题 | 传输方式 |
|---|---|---|---|---|
| HTTP/0.9 | 1991 | 只支持 GET,返回纯 HTML | 功能极简 | 纯文本 |
| HTTP/1.0 | 1996 | 增加 POST、HEAD 等方法 | 每次请求新建连接 | 纯文本 |
| HTTP/1.1 | 1997 | 持久连接、管道化、Host 字段、缓存控制 | 队头阻塞(Head-of-Line Blocking) | 纯文本 |
| HTTP/2 | 2015 | 多路复用、二进制帧、头部压缩(HPACK)、服务器推送 | 仍基于 TCP(队头阻塞未彻底解决) | 二进制 |
| HTTP/3 | 2022 | 基于 QUIC(UDP)、0-RTT、彻底解决队头阻塞 | 部署成本较高 | 二进制 |
一句话总结:
HTTP/1.1 是目前最广泛使用的;HTTP/2 大幅提升网页加载速度;HTTP/3 是未来方向(尤其移动网络)。
7. HTTP vs HTTPS
- HTTP:明文传输,容易被窃听、篡改。
- HTTPS = HTTP + SSL/TLS 加密层。
- 提供加密、身份验证、数据完整性。
- 现在几乎所有网站都强制使用 HTTPS(浏览器会标记 HTTP 为“不安全”)。
想深入学习?
回复以下任意关键字,我立刻给你对应完整内容:
- “HTTP 请求头详解”
- “HTTP/2 多路复用原理”
- “HTTPS 握手流程图解”
- “HTTP 缓存机制(强缓存、协商缓存)”
- “写一个抓包分析 HTTP 的实战案例”
或者直接说“给我完整 PDF/思维导图”,我可以帮你整理!
HTTP 是所有 Web 开发的基石,彻底掌握它,你的网页性能优化、前后端分离、接口设计都会突飞猛进!🚀