HTTP 状态码用于向浏览器反馈网页或资源的状态。当点击链接时,浏览器会向 Web 服务器请求页面;若服务器成功找到该页面,浏览器将收到状态码 200。
实际上,通过 HTTP 或 HTTPS 传输的每一个文件(包括网页、图片、CSS 样式表及 JavaScript 文件)都会使用状态码。这是一项虽不常被察觉但至关重要的技术。
加载 Practical Ecommerce 主页显示返回了 83 次 200 状态码。
例如,仅加载 Practical Ecommerce 的主页就会触发 83 次 200 状态码响应。
了解常见状态码对所有 Web 开发人员至关重要。虽然无需刻意记忆所有代码,但能够区分错误页面(500)与重定向(301)是一项必备技能。
对于非开发人员而言,掌握常见状态码同样有益。作为理解网站运行机制的基础语言,熟悉状态码有助于更好地管理商店或与开发团队沟通。特别是在涉及应用程序编程接口(API)交互时,HTTP 状态码本质上就是 API 通信的交换机。
状态码分类
状态码共分为五类:
- 100 组:信息性状态码(进行中)。
- 200 组:成功响应。
- 300 组:重定向(指示浏览器访问其他位置)。
- 400 组:客户端错误(浏览器端问题)。
- 500 组:服务器错误。
这种分组方式有助于快速识别错误类型。例如,看到 403 错误即知与浏览器请求的 URL 权限有关,而 511 代码则必然指向服务器端问题。
HTTP 状态码详解
以下列出对电商网站至关重要的状态码(注:Wikipedia 上有完整列表,但技术性较强)。下文特别标注了在 API 开发中更为常见的代码。
100 组:处理中项目
此类状态码主要用于数据流传输之外的场景,日常运营中通常可忽略。
200 组:成功响应
包含通用的 200 OK 响应,表示请求已被成功接受且无异常。
- 200 OK:请求已成功处理。
- 201 Created(API):请求成功创建了某项内容。
- 204 No Content(API):服务器成功处理了请求,但无内容可返回。
300 组:重定向
主要包含两个常见响应:301 和 302。
- 301 Moved Permanently:永久移动。浏览器应自动跳转至新 URL。此操作会将原有的 SEO 优势(如入站链接和页面权重)转移至新地址。
- 302 Found:临时重定向。功能与 301 类似,但为临时性质,不会传递 SEO 权重。
- 304 Not Modified:未修改。表示浏览器缓存的版本仍是最新的,可直接使用以加快加载速度。
注意:301 与 302 在 SEO 层面有显著差异。301 保留现有排名优势,302 则不会。如需深入了解,建议阅读相关文章《3 Server Errors That Drain SEO》。
400 组:客户端错误
此类错误源于浏览器或客户端请求问题,占错误代码的一半。
- 400 Bad Request:通用错误请求。当服务器无法解析请求时使用,部分服务器将其作为兜底代码。
- 401 Unauthorized(API):未经授权。通常因缺少有效凭证导致,用于保护私有信息。
- 403 Forbidden(API):禁止访问。与 401 不同,403 表示用户已登录但无权访问特定资源(如查看他人敏感信息)。
- 404 Not Found:未找到。服务器无法根据当前 URL 定位到任何资源。
- 405 Method Not Allowed(API):方法不允许。常见于 API 开发,指使用了不支持的 HTTP 方法(如向不接受表单数据的 URL 提交数据)。
- 429 Too Many Requests(API):请求过多。当调用频率超过 API 限制时触发,提示需降低请求速率。
500 组:服务器错误
与 400 组不同,500 组代表服务器端故障。理想情况下,团队应通过监控系统直接收到包含修复细节的通知。
- 500 Internal Server Error:内部服务器错误。服务器端出现未知问题的通用提示。
- 502 Bad Gateway(API):错误网关。当服务器作为代理从上游服务器收到无效响应时触发。
- 503 Service Unavailable:服务不可用。通常因服务器过载或维护导致,建议用户稍后重试。
- 504 Gateway Timeout(API):网关超时。比 502 更具体,指上游服务器在规定时间内未响应(如支付网关离线)。

