跳至正文

http-协议


HTTP 协议

核心定义

HTTP 是应用层的请求-响应协议,基于 TCP 传输,默认端口 80

HTTP 本身是 无状态协议 —— 服务端默认不保存请求之间的会话状态,因此引入 Cookie(客户端存储)和 Session(服务端存储)来维持会话。

HTTP 核心考点五大板块:请求方法、状态码、持久连接、Cookie/Session、HTTPS

HTTPS 是 HTTP 加上 TLS 层,提供加密传输、数据完整性、身份认证三大安全保障,默认端口 443

HTTP 报文结构:请求报文 = 请求行(方法 URL 版本)+ 请求头 + 空行 + 请求体;响应报文 = 状态行(版本 状态码 原因短语)+ 响应头 + 空行 + 响应体

HTTP/1.0 默认非持久连接(每个请求/响应后关闭 TCP);HTTP/1.1 默认持久连接(Connection: keep-alive,多个请求复用同一 TCP 连接)。

关键细节 / 操作步骤

  1. 请求方法语义:GET(获取资源)、POST(提交数据)、PUT(更新/替换资源)、DELETE(删除资源)、HEAD(获取首部)、OPTIONS(查询支持的方法)。
  2. GET 与 POST 区别:GET 参数在 URL 中(有长度限制,可缓存),POST 参数在 请求体中(无长度限制,不可缓存)。
  3. 状态码分类速记:2xx 成功、3xx 重定向、4xx 客户端错误、5xx 服务器错误。常见码:200(OK)、301(永久重定向)、302(临时重定向)、304(未修改/缓存命中)、404(未找到)、500(服务器内部错误)。
  4. Cookie 工作机制:服务端通过 Set-Cookie 响应头 下发,客户端通过 Cookie 请求头 回传,存储在客户端浏览器。
  5. Session 工作机制:服务端创建 Session 对象,通过 Session ID(通常存在 Cookie 中)关联客户端,状态保存在服务端内存或数据库。
  6. 持久连接优势:减少 TCP 连接建立/释放开销、提高页面加载效率。HTTP/1.1 还支持管线化(pipelining),但 HTTP/2 用多路复用取代。
  7. HTTPS 安全原理:客户端与服务器通过 TLS 握手协商对称密钥,之后用对称密钥加密 HTTP 数据;服务器通过数字证书证明身份。
  8. 若题目问报文结构:严格按 请求行/状态行 \to 首部行 \to 空行 \to 实体主体 的顺序写。
  9. 若题目问 HTTP vs HTTPS:基础协议相同 + TLS 安全层增强 + 使用场景不同(HTTP 明文,HTTPS 密文)。
  10. 若题目问状态码:先按类别写大框架(2/3/4/5),再填具体码值和含义。

⚠️ 易错辨析

  • HTTP 和 HTTPS 不是完全不同的协议族:HTTPS = HTTP + TLS,核心协议一致,区别在传输层加密。不能说”HTTPS 是另一种协议”。
  • 200 是最常见的成功状态码,但不代表所有成功都是 200。如 201(已创建)、204(无内容)也是成功。
  • Cookie 和 Session 都用于会话管理但方式不同:Cookie 存在客户端(浏览器),Session 存在服务端(内存/数据库)。反例:说”Cookie 和 Session 功能完全相同”是错误的。
  • 持久连接 \neq 永远不断开:持久连接只是允许多个请求复用同一 TCP 连接,仍有超时和最大请求数限制。
  • 无状态 \neq 不能登录:HTTP 本身无状态,但通过 Cookie/Session 可以实现有状态的会话体验。

💡 技巧与口诀

  • 口诀:2 成功,3 跳转,4 客错,5 服错
  • 应用场景:看到”登录状态""购物车""用户会话”想 Cookie/Session;看到”加密通信”想 HTTPS + TLS
  • 比较请求方法:重点区分 GET(读)vs POST(写)——参数位置、长度限制、缓存性、安全性。
  • 状态码答题策略:先写类别(2/3/4/5),再写具体码值,最后解释含义。

📝 真题闭环 题目:简述 HTTP 与 HTTPS 的区别,并说明 HTTPS 是如何保证通信安全的。

解题思路

  • 审题抓”HTTP vs HTTPS 区别 + 安全机制”,切入点是TLS 安全层
  • 区别:(1) HTTP 明文传输,HTTPS 密文传输;(2) HTTP 默认端口 80,HTTPS 默认端口 443;(3) HTTPS 需要 CA 数字证书
  • 安全保证三方面:加密传输(TLS 握手协商对称密钥,加密数据)、数据完整性(MAC 校验防篡改)、身份认证(数字证书验证服务器身份)。
  • TLS 握手简要流程:客户端发送支持的加密套件 \to 服务器返回选择的套件和数字证书 \to 客户端验证证书 \to 双方协商对称密钥 \to 开始加密通信。

答案:区别——HTTP 明文/端口 80,HTTPS 密文/端口 443/需 CA 证书。HTTPS 通过 TLS 加密传输、MAC 完整性校验、数字证书身份认证 保证通信安全。


cd ..