什么是 HTTP 状态码?
HTTP 状态码是由 Web 服务器发送的由三位数字组成的响应,用于指示客户端请求的结果。它有助于浏览器和开发人员了解请求是成功、失败还是需要进一步操作。
每当客户端(如浏览器、API 或代理)向 Web 服务器发送请求时,服务器都会返回一个状态码,以说明其如何处理该请求。
这些代码根据其首位数字被分为五大类:
- 1xx — 信息类: 已收到该请求,目前正在处理中。
- 2xx — 成功: 该请求已成功接收、理解并接受。
- 3xx — 重定向: 客户端必须采取进一步操作才能完成该请求。
- 4xx — 客户端错误: 该请求包含语法错误或无法处理。
- 5xx — 服务器错误: 服务器无法处理一个有效的请求。
对于代理用户而言,这些代码能提供关键信息,帮助判断连接问题是源于代理、目标网站,还是两者之间的网络。
1xx – 信息类
| 状态码 | 定义 | 下一步 |
|---|---|---|
| 100 继续 | 已收到请求的开头部分,客户端应继续发送请求。 | 继续发送请求。 |
| 101 交换协议 | 服务器正在根据客户端的要求切换到另一种协议。 | 确保客户端能够处理新协议。 |
| 102 处理中 | 服务器已收到请求并正在处理中,但尚未收到响应。 | 请等待服务器完成处理。 |
| 103 个早期提示 | 提供有关该请求的初步信息,通常用于优化加载过程。 | 利用这些提示来提升性能或用户体验。 |
2xx - 成功
| 状态码 | 定义 | 下一步 |
|---|---|---|
| 200 OK | 请求成功,服务器返回了所请求的资源。 | 无需采取任何操作;请求已成功。 |
| 201 已创建 | 该请求已处理完毕,并创建了一个新资源。 | 无需采取进一步操作;已创建新资源。 |
| 202 已接受 | 该请求已接受处理,但处理尚未完成。 | 请等待处理完成;如有必要,请检查是否有更新。 |
| 203 非权威信息 | 请求成功,但返回的元数据可能并非来自原始服务器。 | 检查返回的数据,确保其符合要求。 |
| 204 无内容 | 请求成功,但响应中未返回任何内容。 | 无需操作;请求已成功,但无内容可显示。 |
| 205 重置内容 | 请求成功,客户端应刷新视图。 | 将文档视图或表单重置为原始状态。 |
| 206 部分内容 | 服务器返回了所请求资源的部分内容,这通常是由于范围标头所致。 | 根据需要继续请求更多内容;验证接收到的数据。 |
3xx – 重定向
| 状态码 | 定义 | 下一步 |
|---|---|---|
| 300道选择题 | 该请求有多种可能的响应。用户或客户端应从中选择一种。 | 请从给定的选项中选择一个,或修改请求以使其更具体。 |
| 301 永久重定向 | 所请求的资源已移至新网址,今后所有请求均应使用新网址。 | 请更新书签或引用,以使用新的网址。 |
| 302 已找到 | 所请求的资源暂时位于另一个 URL 下,但客户端在今后的请求中应继续使用原始 URL。 | 请访问该临时网址,但后续请求仍请继续使用原始网址。 |
| 303 查看更多 | 使用 GET 方法,可以在另一个 URL 下找到该请求的响应。 | 向给定的 URL 发送 GET 请求以获取资源。 |
| 304 未修改 | 该资源自上次请求以来未被修改,客户端可以使用缓存版本。 | 使用该资源的缓存版本。 |
| 305 使用代理 | 必须通过响应中指定的代理访问所请求的资源。 | 使用指定的代理服务器重新发送请求。 |
| 307 临时重定向 | 所请求的资源暂时位于另一个 URL 下,客户端应通过该 URL 处理此请求。 | 请使用此请求的临时 URL,但后续请求请使用原始 URL。 |
| 308 永久重定向 | 所请求的资源已永久移至新网址,今后所有请求均应使用新网址。 | 更新所有引用,使其使用新网址。 |
4xx – 客户端错误
| 状态码 | 定义 | 下一步 |
|---|---|---|
| 400 请求错误 | 由于客户端错误(例如请求语法错误),服务器无法处理该请求。 | 请检查请求语法和参数,然后重试。 |
| 401 未授权 | 访问所请求的资源需要进行身份验证。 | 请提供有效的身份验证凭据,然后重试。 |
| 402 需付款 | 保留供将来使用;通常表示访问该资源需要付费。 | 如适用,请完成支付流程。 |
| 403 禁止访问 | 服务器理解该请求,但拒绝对其进行授权。 | 请确保您拥有访问该资源所需的权限。 |
| 404 未找到 | 服务器无法找到所请求的资源。 | 请检查 URL 是否存在错误,或尝试搜索该资源。 |
| 405 方法不允许 | 所请求的资源不支持此请求方法。 | 检查是否使用了正确的 HTTP 方法(GET、POST 等)。 |
| 406 不可接受 | 服务器无法生成符合客户端 Accept 头要求的响应。 | 调整请求头,以接受有效的响应格式。 |
| 407 需要代理身份验证 | 客户端必须先通过代理进行身份验证。 | 请提供有效的代理认证凭据。 |
| 408 请求超时 | 服务器在等待请求时超时了。 | 请重新发送请求,并确保在服务器允许的时间范围内发送。 |
| 409 冲突 | 由于与资源的当前状态发生冲突,无法处理此请求。 | 请先解决冲突,然后再重试该请求。 |
| 410 已删除 | 所请求的资源已不可用,且将不再提供。 | 由于该资源已被永久删除,请移除或更新对其的引用。 |
| 需填写411位数字 | 服务器要求请求中必须包含 Content-Length 头字段。 | 请在请求中包含 Content-Length 头,然后重试。 |
| 412 先决条件未满足 | 服务器不符合请求头中指定的某个先决条件。 | 检查请求头中的先决条件,并根据需要进行调整。 |
| 413 有效载荷过大 | 请求实体的大小超出了服务器愿意或能够处理的范围。 | 请缩小请求负载的大小,然后重试。 |
| 414 URI 过长 | 客户端请求的 URI 长度超出了服务器可解析的范围。 | 缩短 URI 或降低请求的复杂度。 |
| 415 媒体类型不受支持 | 服务器不支持所请求数据的媒体格式。 | 请在请求中使用受支持的媒体格式。 |
| 416 范围无法满足 | 服务器无法满足 Range 头中指定的范围要求。 | 修改范围请求,或尝试访问完整资源。 |
| 417 预期失败 | 服务器无法满足 Expect 请求头字段的要求。 | 请删除“Expect”标头或调整其值,然后重试。 |
| 429 请求过多 | 该用户在指定时间内从同一IP地址发送了过多的请求(“速率限制”)。 | 请稍等片刻后再试;建议降低请求频率,或通过使用住宅代理将请求分散到多个IP地址上。 |
5xx – 服务器错误
| 状态码 | 定义 | 下一步 |
|---|---|---|
| 500 内部服务器错误 | 服务器遇到意外情况,无法处理此请求。 | 检查服务器日志中的错误,并修复导致该问题的任何问题。 |
| 501 未实现 | 服务器不支持处理此请求所需的功能。 | 确保服务器软件能够处理该请求;考虑更新或更换服务器。 |
| 502 网关错误 | 服务器在充当网关或代理时,从上游服务器收到了无效的响应。 | 检查上游服务器和网络连接;解决任何问题。 |
| 503 服务不可用 | 服务器目前无法处理此请求,通常是由于临时负载过重或正在进行维护所致。 | 请稍后再试;请查看服务器负载或维护状态。 |
| 504 网关超时 | 该服务器在充当网关或代理时,未从上游服务器收到及时的响应。 | 检查上游服务器和网络连接;确保超时设置正确。 |
| 505 不支持该 HTTP 版本 | 服务器不支持请求中使用的 HTTP 协议版本。 | 请使用受支持的 HTTP 版本或更新服务器软件。 |
| 506 变体也支持协商 | 服务器存在内部配置错误,导致循环引用。 | 修正服务器配置以解决循环引用问题。 |
| 507 存储空间不足 | 服务器无法存储完成该请求所需的表示形式。 | 释放服务器上的磁盘空间或增加存储容量。 |
| 检测到508个循环 | 服务器在处理请求时检测到一个无限循环。 | 调查并修复服务器配置或代码中的循环问题。 |
| 510 未扩展 | 需要对该请求进行进一步扩展,服务器才能处理该请求。 | 确保客户端请求包含必要的扩展名。 |
| 511 需要网络认证 | 客户端需要通过身份验证才能访问网络。 | 请提供有效的网络身份验证凭据。 |
使用场景
最佳实践
结论
HTTP状态码是客户端与服务器之间的通信桥梁,用于指示请求是成功、失败还是需要调整。对于依赖代理的团队而言,了解这些状态码有助于更快地定位和解决问题,从而提高连接的可靠性和数据的准确性。
常见问题解答
它们描述了服务器如何响应客户端的请求——无论是成功、失败,还是需要进一步操作。
它们有助于确定问题是源于代理服务器、目标网站还是客户端配置。
4xx 错误表示客户端问题(例如,请求错误或未经授权的访问),而 5xx 错误表示服务器端故障。
在许多情况下,确实如此。轮换 IP 地址、使用家庭代理或进行正确的身份验证,通常可以解决 4xx 和 5xx 错误。