HTTP状态码详解 - 完整状态码速查手册

HTTP状态码是服务器对客户端请求的响应标识,通过状态码可以快速判断请求的处理结果。无论是Web开发、运维还是SEO优化,理解HTTP状态码都是必备技能。使用HTTP状态检测工具可以快速检查网站返回的状态码。

一、状态码分类

HTTP状态码由三位数字组成,第一位数字定义了响应的类别:

类别 范围 含义 说明
1xx 100-199 信息响应 服务器收到请求,需要请求者继续操作
2xx 200-299 成功响应 请求已成功被服务器接收、理解、接受
3xx 300-399 重定向 需要后续操作才能完成请求
4xx 400-499 客户端错误 请求包含语法错误或无法完成请求
5xx 500-599 服务器错误 服务器在处理请求时发生错误

二、1xx 信息响应

状态码 英文名称 中文描述 使用场景
100 Continue 继续 服务器已收到请求头,客户端应继续发送请求体
101 Switching Protocols 切换协议 服务器同意切换协议(如HTTP升级到WebSocket)
102 Processing 处理中 服务器已接收并正在处理请求
103 Early Hints 早期提示 在最终响应前发送一些响应头(如Link头预加载)

三、2xx 成功响应

状态码 英文名称 中文描述 使用场景
200 OK 成功 请求已成功处理,是最常见的成功状态码
201 Created 已创建 请求成功并创建了新的资源(如POST创建资源)
202 Accepted 已接受 请求已接受,但尚未处理完成(异步处理)
204 No Content 无内容 服务器成功处理,但未返回内容(如DELETE成功)
206 Partial Content 部分内容 服务器成功处理了部分GET请求(断点续传)

200 OK 详解

200是最常见的成功状态码,表示请求已成功处理。但需要注意:

  • GET请求:返回请求的资源
  • POST请求:返回操作结果或新创建的资源
  • HEAD请求:只返回响应头

四、3xx 重定向

状态码 英文名称 中文描述 使用场景
301 Moved Permanently 永久移动 资源已永久移动到新的URL,SEO权重会传递
302 Found 临时移动 资源临时移动到新的URL,SEO权重不会传递
304 Not Modified 未修改 资源未修改,客户端可使用缓存版本
307 Temporary Redirect 临时重定向 类似302,但要求使用相同的请求方法
308 Permanent Redirect 永久重定向 类似301,但要求使用相同的请求方法

301 vs 302 的区别

301 永久重定向:

  • 告诉搜索引擎原URL已永久移除
  • SEO权重会传递到新URL
  • 浏览器会缓存重定向结果
  • 适用于网站改版、域名更换

302 临时重定向:

  • 告诉搜索引擎原URL只是暂时不可用
  • SEO权重不会传递
  • 浏览器不会缓存
  • 适用于临时维护、A/B测试

五、4xx 客户端错误

状态码 英文名称 中文描述 使用场景
400 Bad Request 错误请求 请求语法错误,服务器无法理解
401 Unauthorized 未授权 请求需要用户身份验证
403 Forbidden 禁止访问 服务器拒绝访问(权限不足或IP被封)
404 Not Found 未找到 服务器找不到请求的资源
405 Method Not Allowed 方法不允许 请求方法被禁用(如用POST访问只读资源)
408 Request Timeout 请求超时 服务器等待客户端发送请求的时间过长
429 Too Many Requests 请求过多 客户端发送了太多请求,被限流

403 vs 401 的区别

401 Unauthorized:

  • 未提供身份验证信息
  • 需要提供有效的凭据
  • 通常返回WWW-Authenticate头

403 Forbidden:

  • 已提供身份验证,但权限不足
  • 服务器明确拒绝访问
  • 重复请求也不会成功

404错误的常见原因

  • URL拼写错误
  • 资源已被删除或移动
  • 链接已过期
  • 服务器配置错误
  • 大小写敏感问题(Linux服务器)

六、5xx 服务器错误

状态码 英文名称 中文描述 使用场景
500 Internal Server Error 服务器内部错误 服务器遇到意外情况,无法完成请求
502 Bad Gateway 错误网关 网关或代理从上游服务器收到无效响应
503 Service Unavailable 服务不可用 服务器暂时过载或维护
504 Gateway Timeout 网关超时 网关或代理未及时从上游服务器获取响应
505 HTTP Version Not Supported HTTP版本不支持 服务器不支持请求中使用的HTTP协议版本

502 vs 504 的区别

502 Bad Gateway:

  • 上游服务器返回了无效响应
  • 可能是上游服务器崩溃
  • 可能是上游服务器返回了错误格式

504 Gateway Timeout:

  • 上游服务器响应超时
  • 可能是上游服务器处理太慢
  • 可能是网络连接问题

七、状态码与SEO

对SEO友好的状态码

状态码 SEO影响 使用建议
200 正常收录 正常页面应返回200
301 权重传递 永久跳转时使用,传递SEO权重
302 权重不传递 临时跳转时使用
404 不收录 页面不存在时返回,不要返回200
410 快速删除 资源永久删除时使用
500+ 降低排名 及时修复服务器错误

八、状态码排查工具

使用专业工具可以快速检测网站状态码:

  • HTTP状态检测:批量检测URL状态码
  • 网站测速:测试网站响应状态
  • 浏览器开发者工具:Network面板查看状态码
  • curl命令:curl -I https://example.com

九、总结

HTTP状态码是Web开发和运维的基础知识,掌握状态码可以快速定位和解决问题:

  • 2xx:请求成功,一切正常
  • 3xx:需要重定向,注意SEO影响
  • 4xx:客户端问题,检查请求
  • 5xx:服务器问题,需要修复

建议定期使用HTTP状态检测工具检查网站状态码,及时发现和修复问题。