Skip to content

HTTP

📌 一、HTTP请求方法

1. 常见方法及用途

方法安全?幂等?描述
GET获取资源
POST提交数据(创建资源)
PUT更新完整资源
PATCH更新资源部分内容
DELETE删除资源
HEAD获取响应头(无Body)
OPTIONS查询服务器支持的方法

安全:不修改服务器资源
幂等:多次执行效果相同


🔥 二、POST vs PUT 核心区别

特性POSTPUT
URI含义作用于父资源集合
(如 /users
作用于具体资源
(如 /users/123
语义创建新资源
(服务器分配ID)
替换现有资源
(客户端指定ID)
幂等性❌ 多次提交可能创建多个资源✅ 多次调用结果一致
响应码201 Created200 OK204 No Content
缓存通常不可缓存通常不可缓存

✅ 关键总结:

  • POST → 创建(不指定资源ID)
  • PUT → 全量更新/创建(需明确资源ID)

🌐 三、HTTP状态码分类

分类范围代表状态码
1xx信息类100 Continue
2xx成功200 OK, 201 Created, 204 No Content
3xx重定向301 Moved Permanently, 302 Found, 304 Not Modified
4xx客户端错误400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found
5xx服务器错误500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable

⚡ 四、HTTP版本演进

1. HTTP/1.0 vs HTTP/1.1

特性HTTP/1.0HTTP/1.1
连接管理短连接(每次请求新TCP)长连接(默认Connection: keep-alive
缓存控制基础(Expires增强(Cache-Control
主机头Host头(支持虚拟主机)
方法扩展基础方法新增OPTIONS, PUT

2. HTTP/2 核心特性

  • 二进制分帧(替代文本传输)
  • 多路复用(一个连接并行处理请求)
  • 头部压缩(HPACK算法)
  • 服务器推送(主动推送资源)

🧠 五、高频面试题

1. 什么是幂等性?哪些HTTP方法是幂等的?

幂等:多次执行结果一致。
幂等方法:GET, PUT, DELETE, HEAD, OPTIONS

2. HTTP缓存如何工作?

  • 强缓存:直接使用本地副本
    Cache-Control: max-age=3600, Expires
  • 协商缓存:询问服务器资源是否变更
    Last-Modified + If-Modified-Since / ETag + If-None-Match
CookieSession
存储位置客户端服务器
安全性较低(可篡改)较高
存储限制≤4KB无硬限制
实现机制Set-Cookie响应头Session ID(常存于Cookie)

4. HTTPS如何保证安全?

  1. TLS/SSL加密
  2. 混合加密:
    • 非对称加密交换对称密钥
    • 对称加密传输数据
  3. 数字证书验证身份(防中间人攻击)

💡 六、易混淆概念

301 vs 302 重定向

  • 301 Moved Permanently:永久重定向(搜索引擎更新URL)
  • 302 Found:临时重定向(后续请求仍用原URL)

RESTful中PUT vs PATCH

  • PUT → 替换整个资源
  • PATCH → 部分修改(如只更新用户邮箱)