HTTP 状态码详解
在 Web 开发中,HTTP 状态码是客户端与服务器沟通的基础语言。虽然大家最熟悉的是 200(成功)和 404(未找到),但完整理解这些代码对于排查网络问题、优化用户体验至关重要。
1xx:临时响应
这类状态码表示请求已收到,需要继续执行操作。
- 100 Continue:服务器已收到请求的第一部分,正在等待其余部分。
- 101 Switching Protocols:服务器确认并准备切换协议。
2xx:成功处理
这是最理想的情况,表示请求已被成功接收、理解和接受。
- 200 OK:请求成功。绝大多数正常访问都会返回此码。
- 201 Created:请求成功且服务器创建了新的资源。
- 202 Accepted:请求已接受,但尚未完成处理。
- 203 Non-Authoritative Information:返回的信息来自非原始服务器的副本。
- 204 No Content:服务器成功处理了请求,但没有返回任何内容(常用于删除操作后)。
- 205 Reset Content:服务器成功处理了请求,要求客户端重置文档视图(如清空表单)。
- 206 Partial Content:服务器成功处理了部分 GET 请求(用于断点续传)。
3xx:重定向
告诉浏览器或客户端去另一个位置获取资源。
- 300 Multiple Choices:针对请求有多种处理方式,需由用户代理选择。
- 301 Moved Permanently:资源已永久移动到新位置,搜索引擎会更新索引。
- 302 Found:资源临时移动,请求者应继续使用原有位置进行后续请求。
- 303 See Other:建议客户端使用单独的 GET 请求检索响应。
- 304 Not Modified:资源自上次请求后未修改,可直接使用缓存。
- 307 Temporary Redirect:类似于 302,但强制保持请求方法不变(如 POST 不变成 GET)。
注:305 曾定义为"Use Proxy",但在现代 HTTP 规范中已不再推荐使用。
4xx:客户端错误
请求包含语法错误或无法被服务器处理,通常意味着需要检查请求本身。
- 400 Bad Request:服务器无法理解请求的语法。
- 401 Unauthorized:请求要求身份验证(如登录)。
- 403 Forbidden:服务器拒绝请求,即使身份验证通过也可能因权限不足返回此码。
- 404 Not Found:服务器找不到请求的资源(最常见的前端错误之一)。
- 405 Method Not Allowed:请求中指定的方法(如 PUT/DELETE)不被允许。
- 408 Request Timeout:服务器等候请求时发生超时。
- 409 Conflict:请求与当前资源状态冲突(如提交重复数据)。
- 410 Gone:请求的资源已永久删除,不再可用。
- 413 Payload Too Large:请求实体过大,超出服务器处理能力。
- 414 URI Too Long:请求的 URI 过长,服务器无法处理。
- 415 Unsupported Media Type:请求的格式不受支持。

