返回

揭秘 HTTP 返回状态码:服务器与客户端之间的交流语言

见解分享

HTTP 概述

超文本传输协议(HTTP)是一种基于客户端/服务器(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。在一个 HTTP 请求中,客户端会向服务器发送一个请求报文,服务器在接收到请求报文后,会返回一个响应报文给客户端。HTTP 状态码是服务器在响应报文中包含的重要信息之一,它告知客户端服务器对请求的处理结果。

常见 HTTP 状态码

HTTP 状态码是一个三位数字的代码,它被分为五个不同的类别:

  • 1xx:信息响应

    • 100:继续
    • 101:切换协议
    • 102:处理中(WebDAV)
    • 103:早期提示
  • 2xx:成功响应

    • 200:成功
    • 201:已创建
    • 202:已接受
    • 203:非授权信息
    • 204:无内容
    • 205:重置内容
    • 206:部分内容
  • 3xx:重定向

    • 300:多重选择
    • 301:永久重定向
    • 302:临时重定向
    • 303:查看其他位置
    • 304:未修改
    • 305:使用代理
    • 307:临时重定向(WebDAV)
  • 4xx:客户端错误

    • 400:错误的请求
    • 401:未授权
    • 403:禁止
    • 404:未找到
    • 405:方法不允许
    • 406:不可接受
    • 407:需要代理授权
    • 408:请求超时
    • 409:冲突
    • 410:已删除
    • 411:长度需要
    • 412:预期的失败
    • 413:请求实体过大
    • 414:请求的 URI 太长
    • 415:不支持的媒体类型
    • 416:请求范围不满意
    • 417:期望值失败
    • 418:我是茶壶
    • 422:不可处理的实体
    • 423:已锁定
    • 424:失败的依赖
    • 425:过大
    • 426:升级必需
    • 428:前提条件失败
    • 429:太多请求
    • 431:请求标头字段太大
    • 451:不可用以法律为依据
  • 5xx:服务器错误

    • 500:内部服务器错误
    • 501:未实现
    • 502:错误的网关
    • 503:服务不可用
    • 504:网关超时
    • 505:HTTP 版本不受支持
    • 506:变体也协商
    • 507:不充分的存储空间
    • 508:循环依赖
    • 510:尚未实现
    • 511:网络身份验证失败

如何对 HTTP 状态码进行故障排除

当您在使用 HTTP 协议时遇到问题时,HTTP 状态码可以帮助您快速定位问题的根源。以下是常见的 HTTP 状态码的故障排除方法:

  • 1xx:信息响应

    • 100:继续

      • 故障排除:此状态码通常用于表示服务器已收到客户端的请求,并且正在处理中。如果服务器没有返回 100 状态码,则客户端可以继续发送请求。
    • 101:切换协议

      • 故障排除:此状态码表示服务器已接受客户端请求的协议切换。如果服务器没有返回 101 状态码,则客户端不能切换协议。
    • 102:处理中(WebDAV)

      • 故障排除:此状态码表示服务器正在处理客户端的请求,但尚未完成。如果服务器没有返回 102 状态码,则客户端可以继续发送请求。
    • 103:早期提示

      • 故障排除:此状态码表示服务器已收到客户端的请求,并且正在处理中。服务器可以在处理请求的同时向客户端发送早期提示。如果服务器没有返回 103 状态码,则客户端可以继续发送请求。
  • 2xx:成功响应

    • 200:成功

      • 故障排除:此状态码表示服务器已成功处理客户端的请求。客户端可以根据服务器返回的数据进行下一步操作。
    • 201:已创建

      • 故障排除:此状态码表示服务器已成功创建客户端请求的资源。客户端可以根据服务器返回的数据获取新创建资源的详细信息。
    • 202:已接受

      • 故障排除:此状态码表示服务器已接受客户端的请求,但尚未完成处理。客户端可以根据服务器返回的数据获取请求的处理状态。
    • 203:非授权信息

      • 故障排除:此状态码表示服务器已成功处理客户端的请求,但返回的数据不是完整的。客户端可以根据服务器返回的数据获取部分资源信息。
    • 204:无内容

      • 故障排除:此状态码表示服务器已成功处理客户端的请求,但没有返回任何数据。客户端可以根据服务器返回的状态码进行下一步操作。
    • 205:重置内容

      • 故障排除:此状态码表示服务器已成功处理客户端的请求,并重置了客户端的会话状态。客户端可以根据服务器返回的状态码重新发送请求。
    • 206:部分内容

      • 故障排除:此状态码表示服务器已成功处理客户端的请求,并返回了客户端请求的资源的一部分。客户端可以根据服务器返回的数据获取部分资源信息。
  • 3xx:重定向

    • 300:多重选择

      • 故障排除:此状态码表示服务器有多个可以处理客户端请求的资源。客户端可以选择一个资源进行访问。
    • 301:永久重定向

      • 故障排除:此状态码表示服务器已永久重定向客户端请求的资源。客户端应该使用新的资源地址进行访问。
    • 302:临时重定向

      • 故障排除:此状态码表示服务器已临时重定向客户端请求的资源。客户端应该使用新的资源地址进行访问,但下一次请求时应该使用原来的资源地址。
    • 303:查看其他位置

      • 故障排除:此状态码表示服务器已将客户端请求的资源移动到了新的位置。客户端应该使用新的资源地址进行访问。
    • 304:未修改

      • 故障排除:此状态码表示客户端请求的资源自上次请求后没有发生变化。客户端可以继续使用缓存的资源。
    • 305:使用代理

      • 故障排除:此状态码表示服务器已将客户端请求的资源转移到一个代理服务器。客户端应该使用代理服务器进行访问。
    • 307:临时重定向(WebDAV)

      • 故障排除:此状态码表示服务器已临时重定向客户端请求的资源。客户端应该使用新的资源地址进行访问,但下一次请求时应该使用原来的资源地址。
  • 4xx:客户端错误

    • 400:错误的请求

      • 故障排除:此状态码表示客户端请求的语法不正确。客户端应该修改请求后重新发送。
    • 401:未授权

      • 故障排除:此状态码表示客户端没有权限访问请求的资源。客户端应该提供正确的授权信息后重新发送请求。
    • 403:禁止

      • 故障排除:此状态码表示客户端没有权限访问请求的资源。客户端不能重新发送请求。
    • 404:未找到

      • 故障排除:此状态码表示服务器没有找到客户端请求的资源。客户端应该检查请求的资源地址是否正确。
    • 405:方法不允许

      • 故障排除:此状态码表示客户端使用的请求方法不被服务器支持。客户端应该使用其他支持的请求方法重新发送请求。
    • 406:不可接受

      • 故障排除