📝 博客 · · ⏱ 10 分钟

HTTP状态码大全:404/500/301/302含义与解决方案

HTTP状态码是什么意思?本文完整整理1xx到5xx所有状态码,详解404、500、301、302等常见状态码的含义、产生原因和解决方案。

HTTP网络协议开发工具

HTTP状态码大全:404/500/301/302含义与解决方案

浏览器打开网页显示"404 Not Found",接口调试返回"500 Internal Server Error",网站换域名要做"301重定向"——HTTP状态码是每个开发者和网站运营者必须了解的基础知识。本文一次讲透。

HTTP状态码是什么

每当浏览器向服务器发送请求,服务器会返回一个三位数字的状态码,表示请求的处理结果。通过这个数字,你就能知道请求是成功了、失败了、还是需要跳转。

状态码按第一位数字分为5大类:

范围类别含义
1xx信息性请求已接收,继续处理
2xx成功请求已成功接收和处理
3xx重定向需要进一步操作才能完成请求
4xx客户端错误请求有误,服务器无法处理
5xx服务端错误服务器处理出错

常见状态码详解

2xx:成功

#### 200 OK

最理想的状态码。请求成功,响应体中包含了请求的资源。

#### 201 Created

请求成功且服务器创建了新资源。常用于POST请求创建数据后返回。

#### 204 No Content

请求成功但没有返回内容。常用于DELETE操作或PUT更新成功后。

3xx:重定向

#### 301 Moved Permanently(永久重定向)

资源已永久移动到新URL。搜索引擎会将旧URL的权重转移到新URL。

常见场景

SEO影响:301会将旧页面的搜索权重传递给新页面,是网站迁移时最安全的重定向方式。

配置示例(Nginx):

server {
    listen 80;
    server_name old-domain.com;
    return 301 https://new-domain.com$request_uri;
}

#### 302 Found(临时重定向)

资源临时移动到新URL。搜索引擎不会转移权重。

常见场景

301 vs 302的选择

#### 304 Not Modified

客户端发送了条件请求(带If-Modified-Since或If-None-Match),服务器判断资源未修改,告诉客户端使用本地缓存。

4xx:客户端错误

#### 400 Bad Request

请求语法错误,服务器无法理解。

常见原因

排查方法:检查请求体格式,用 JSON格式化工具 验证JSON是否正确。

#### 401 Unauthorized

请求未认证。需要登录或提供认证信息。

常见原因

解决方案:在请求头中添加认证信息:

Authorization: Bearer <token>

#### 403 Forbidden

服务器理解请求但拒绝执行。与401不同,403是"已认证但无权限"。

常见原因

#### 404 Not Found

请求的资源不存在。最常见的错误状态码。

常见原因

排查方法

  1. 检查URL是否正确
  2. 检查路由配置
  3. 检查文件是否存在于正确路径
  4. 检查服务器root配置

SEO处理:确保404页面返回真正的404状态码(而不是200),否则搜索引擎会索引错误页面。同时设置404页面引导用户回到有效页面。

#### 405 Method Not Allowed

请求方法不被允许。比如接口只支持GET,你用了POST。

常见原因

#### 429 Too Many Requests

请求频率超过限制(限流)。

解决方案

5xx:服务端错误

#### 500 Internal Server Error

服务器内部错误。最笼统的服务端错误码,需要查看服务器日志定位具体原因。

常见原因

排查方法

  1. 查看服务器错误日志
  2. 检查最近部署的代码变更
  3. 检查数据库连接状态
  4. 检查服务器资源(CPU/内存/磁盘)

#### 502 Bad Gateway

网关或代理从上游服务器收到无效响应。

常见原因

排查方法

# 检查后端服务是否运行
ps aux | grep node
# 检查端口是否监听
netstat -tlnp | grep 3000
# 检查Nginx配置
nginx -t

#### 503 Service Unavailable

服务暂时不可用。通常是服务器过载或维护中。

常见原因

处理方式:设置Retry-After响应头,告知客户端何时重试。

#### 504 Gateway Timeout

网关等待上游服务器响应超时。

常见原因

解决方案

状态码速查表

状态码含义常见场景
200成功正常请求
201已创建POST创建资源
204无内容DELETE/PUT成功
301永久重定向域名迁移、HTTPS跳转
302临时重定向登录跳转、维护
304未修改浏览器缓存
400请求错误参数格式错误
401未认证未登录、Token无效
403禁止访问权限不足
404未找到资源不存在
405方法不允许HTTP方法错误
429请求过多限流
500服务器错误代码异常
502网关错误后端服务挂了
503服务不可用维护/过载
504网关超时后端响应超时

开发调试技巧

使用浏览器开发者工具

按F12打开开发者工具 → Network标签页 → 查看每个请求的状态码。状态码会以不同颜色区分:2xx绿色、3xx蓝色、4xx橙色、5xx红色。

命令行调试

# 查看响应头和状态码
curl -I https://example.com

# 只看状态码
curl -o /dev/null -s -w "%{http_code}\n" https://example.com

# 跟踪重定向链
curl -L -v https://example.com 2>&1 | grep "< HTTP"

用在线工具快速检测

使用 HTTP状态码查询工具 可以快速检测任意URL的响应状态码和响应头信息,适合排查重定向问题和接口状态。

SEO相关的状态码处理

301重定向与SEO

网站改版或换域名时,必须用301将旧URL重定向到新URL。301告诉搜索引擎"这个页面永久搬家了",会将旧页面的排名权重传递给新页面。

404页面处理

503维护页面

网站维护时返回503状态码,并设置Retry-After头。这样搜索引擎知道是临时不可用,不会从索引中删除页面。

总结

HTTP状态码是Web开发的通用语言。记住几个关键数字:

遇到状态码问题,用 HTTP状态码检测工具 快速诊断。配合 JSON格式化工具 排查接口请求问题。