HTTP 状态码
意义
每个状态码都是 HTTP 设计者对网络通讯中可能出现情况的假设和预判。它们相当于现实世界的信号灯,例如遇到 404 表示资源找不到,500 表示服务器挂了。这种共识是万维网高效率的基础之一。
HTTP 状态码是日常开发和修改 Bug 的必备工具。常见状态码分类如下:
1. 必须掌握的状态码
- 200 OK: 请求完全正确,如打开网页、调用 API。
- 301 Moved Permanently: 资源永久迁移(例如访问 a.com 会重定向到 b.com)。
- 302 Found: 资源临时迁移。
- 400 Bad Request: 请求出错,如参数缺失。
- 401 Unauthorized: 未登录。
- 403 Forbidden: 已登录但无权限。
- 404 Not Found: 资源不存在。
- 500 Internal Server Error: 服务器内部错误。
2. 需要理解的状态码
排查问题时常用:
- 100 Continue
- 201 Created: 资源创建成功(POST)。
- 204 No Content: 处理成功但不返回资源(DELETE)。
- 206 Partial Content: 部分资源处理成功。
- 304 Not Modified: 资源未修改,可直接使用缓存。
- 405 Method Not Allowed: 方法不被允许。
- 408 Request Timeout: 请求超时。
- 502 Bad Gateway: 网关/代理收到无效响应。
- 503 Service Unavailable: 服务器暂不可用。
HTTP 协议
核心概念
1. HTTP 的本质
- 定义: 超文本传输协议。
- 核心模型: 【请求 + 响应】客户端发送请求,服务器响应,一问一答传递信息。
- 无状态: 服务器不会记住上一次请求(后期引入 Cookie、Session)。
- 位置: 应用层,规范客户端与服务器的传输格式和交互流程。
2. URL 结构
示例:https://www.example.com:8080/path?name=test#fragment
https: 协议类型。www.example.com: 域名(对应服务器 IP)。8080: 端口(http 默认 80,https 默认 443,可省略)。/path: 资源路径。?name=test: GET 携带的参数。#fragment: 锚点。
3. 请求方法 (Method)
- GET: 请求资源,不影响服务器资源。


