HTTP
HTTP
1. 一句话总结
HTTP 是应用层请求响应协议,核心是方法、URL、状态码、Header、缓存和连接管理。
2. 通俗解释
HTTP 像客户端和服务器之间的标准对话:客户端发请求说明想要什么,服务器返回状态、头信息和内容。Header 像附加说明,状态码像处理结果。
3. 核心概念
- 请求报文:请求行、请求头、请求体。
- 响应报文:状态行、响应头、响应体。
- 方法:GET、POST、PUT、DELETE、PATCH 等。
- 状态码:1xx、2xx、3xx、4xx、5xx。
- Header:描述内容类型、缓存、认证、连接等。
- 无状态:协议本身不保存请求上下文。
4. 底层原理
- HTTP 无状态使服务器简单,但登录态要靠 Cookie、Session、Token。
- GET 偏获取资源,POST 偏提交数据,语义和幂等性更关键。
- 缓存通过 Cache-Control、ETag、Last-Modified 等控制。
- HTTP/1.1 支持长连接,但仍有队头阻塞。
- HTTP/2 使用二进制分帧和多路复用。
5. 面试标准回答
HTTP 是应用层请求响应协议。客户端发送请求,包含方法、路径、Header 和可选请求体;服务端返回状态码、Header 和响应体。HTTP 本身无状态,每次请求相互独立,所以登录态通常依赖 Cookie、Session 或 Token。常见状态码中,200 表示成功,301/302 表示重定向,400 表示请求错误,401/403 表示认证或权限问题,404 表示资源不存在,500 表示服务端错误。HTTP 性能优化常围绕连接复用、缓存、压缩和 HTTP/2 多路复用展开。
6. 高频追问
追问 1:HTTP面试第一句话怎么答?
先给结论:请求报文:请求行、请求头、请求体。 再补充它解决的问题和使用场景,避免一上来背长定义。
追问 2:它为什么需要底层机制支撑?
HTTP 无状态使服务器简单,但登录态要靠 Cookie、Session、Token。 面试官追问时要把“现象”落到“机制”和“代价”。
追问 3:常见误区是什么?
不要把平均情况说成绝对结论,也不要忽略边界条件、退化情况和工程成本。
追问 4:如果继续追问怎么展开?
可以沿着“定义 → 原理 → 对比 → 场景 → 缺点 → 优化”展开,重点说清:GET 偏获取资源,POST 偏提交数据,语义和幂等性更关键。
追问 5:实际开发中怎么体现?
REST API 设计要合理使用方法和状态码。 这类联系能把基础知识从“背概念”变成“解释工程选择”。
追问 6:回答时怎么收尾?
最后用一句话总结适用条件和代价,说明什么时候该用、什么时候不该用。
7. 易混淆点
| 易混点 | 正确理解 | 面试提醒 |
|---|---|---|
| GET | 获取资源,通常幂等 | 不只看参数在 URL |
| POST | 提交或创建资源 | 可有副作用 |
| Cookie | 客户端保存状态数据 | 会随请求发送 |
| Session | 服务端保存会话状态 | 分布式要共享 |
| Token | 可验证凭证 | 常用于前后端分离 |
8. 实际开发联系
- REST API 设计要合理使用方法和状态码。
- 登录鉴权常用 Cookie/Session 或 JWT。
- 接口性能优化常用缓存、压缩、连接复用、CDN。
9. 背诵速记
HTTP 是请求响应协议,由起始行、Header、Body 组成。它无状态,登录态靠 Cookie、Session、Token。缓存看 Cache-Control、ETag、Last-Modified;HTTP/2 重点是多路复用。