HTTP响应状态码详解

一、响应状态分类

  • 100-199 信息响应
  • 200-299 成功响应
  • 300-399 重定向消息
  • 400-499 客户端错误响应
  • 500-599 服务端错误响应

二、信息响应

状态码状态信息含义
100Continue(继续)此临时响应指示客户端应继续请求或如果请求已完成则忽略响应
101Switching Protocols(交换协议)该代码是为了响应Upgrade来自客户端的请求头而发送的,并指示服务器正在切换到的协议
102Processing(处理)此代码表示服务器已收到并正在处理请求,但尚无可用响应
103Early Hints(早期的提示)此状态代码主要用于Link标头,让用户代理在服务器准备响应时开始预加载资源

三、成功响应

状态码状态信息含义
200OK请求成功。“成功”的结果含义取决于HTTP方法:
GET:资源已经在消息体中被获取和传输。
HEAD:表示头包含在响应中,没有任何消息正文。
PUT or POST:描述动作结果的资源在消息体中传输。
TRACE:消息正文包含服务器收到的请求消息。
201Created(已创建)请求成功,结果创建了一个新资源。这通常是在POST请求或某些PUT请求之后发送的响应。
202Accepted(已接受)已收到请求但尚未采取行动。这是不明确的,因为在HTTP中没有办法稍后发送指示请求结果的异步响应。它适用于另一个进程或服务器处理请求或批处理的情况。
203Non-Authoritative Information(非权威信息)此响应代码意味着返回的元数据与从源服务器获得元数据并不完全相同,而是从本地或第三方副本中收集的。这主要用于其他资源的镜像或备份。除了那个特定的情况,200 OK响应优先于这个状态。
204No Content(没有内容)没有要为此请求发送的内容,但标头可能有用。用户代理可以使用新的资源更新其缓存的资源头。
205Reset Content(重置内容)告诉用户代理重置发送此请求的文档。
206artial Content(部分内容)当Range从客户端发送标头以仅请求资源的一部分时,将使用此响应代码。
207Multi-Status(多状态)传达有关多个资源的信息,适用于多个状态代码可能适用的情况。
208Already Reported(已经报道的)在<dav:propstat>响应元素内适用,以避免重复枚举同一集合的多个绑定的内部成员。
226IM Used(计算机使用)服务器已完成GET对资源的请求,响应是对当前实例应用的一个或多个实例操作结果的表示。

四、重定向消息

状态码状态信息含义
300Multiple Choices(多项选择)请求有多个可能的响应。用户代理或用户应选择其中之一。(没有选择一种响应的标准化方法,但推荐了指向可能性的HTML连接,以便用户可以选择)。
301Moved Permanently(永久移除)请求资源的URL已被永久更改。响应中给出了新的URL。
302Found(已找到)此响应代码表示请求资源的URL已临时更改。将来可能会对URL进行进一步更改。因此,客户端在以后的请求中应该使用相同的URL。
303See Other(参见其他)服务器发送此响应以指示客户端通过GET请求在另一个URL处获取请求的资源。
304Not Modified(未修改)这用于缓存目的。它告诉客户端响应没有被修改,因此客户端可以继续使用响应的相同缓存版本。
305Use Proxy(使用代理)在HTTP规范的先前版本中定义,以指示请求的响应必须由代理访问。由于有关代理的带内配置的安全问题,它已被弃用。
306未使用不再使用此响应代码;它指示保留。它用于HTTP/1.1规范的先前版本。
307Temporary Redirect(临时重定向)服务器发送此响应以指示客户端使用先前请求中使用的相同方法在另一个URL处获取请求的资源。这与302 Found HTTP响应代码具有相同的语义,但用户代理代理不得更改使用的HTTP方法:如果POST在第一个请求POST中使用了a,则必须在第二个请求中使用a。
308Permanent Redirect(永久重定向)这意味着资源现在永久位于另一个URL,由Location: HTTP响应标头指定。这与301 Moved Permanently HTTP响应代码具有相同的语义,但用户代理不得更改使用的HTTP方法:如果POST在第一个请求中使用了a,则必须在第二个请求中使用a。

五、客户端错误响应

状态码状态信息含义
400Bad Request(坏请求)由于语法无效,服务器无法理解请求。
401Unauthorized(未授权)尽管HTTP标准指定了“未经授权”,但从语义上讲,此响应的意思是“未经身份验证”。也就是说,客户端必须对自己进行身份验证才能获得请求的响应。
402Payment Required(要求付款)此响应代码保留供将来使用。创建此代码的最初的目的是将其用于数字支付系统,但是状态代码很少使用,并且不存在标准约定。
403Forbidden(禁止)客户端无权访问内容;也就是说,它是未经授权的,因此服务器拒绝提供请求的资源。与401 Unauthorized不同的是,服务器知道客户端的身份。
404Not Found(未找到)服务器找不到请求的资源。在浏览器中,这意味着无法识别URL。在API中,这也意味着端点有效但资源本身不存在。服务器也可以发送此响应,而不是403 Forbidden向未经授权的客户端隐藏资源的存在。这个响应代码可能是最广为人知的,因为它经常出现在网络上。
405Method Not Allowed(不允许使用的方法)服务器知道请求方法,但目标资源不支持。例如,API可能不允许调用DELETE删除资源。
406Not Acceptable(无法接受)当Web服务器在执行服务器驱动的内容协商后没有找到符合用户代理给出的标准内容时,将发送此响应。
407Proxy Authentication Required(要求进行代理认证)这类似于401 Unauthorized但需要通过代理完成身份验证。
408Request Timeout(请求超时)这个响应是由一些服务器在空闲连接上发送的,即使客户端没有任何先前的请求。这意味着服务器想要关闭这个未使用的连接。由于某些浏览器使用HTTP预连接机制来加快冲浪速度,因此此响应的使用更多。另请注意,某些服务器仅关闭连接而不发送此消息。
409Conflict(冲突)当请求于服务器的当前状态冲突时发送此响应。
410Gone(消失了)当请求的内容已从服务器永久删除时发送此响应,没有转发地址。客户端应该删除他们的缓存和资源链接。HTTP规范打算将此状态代码用于“限时促销服务”。API不应被迫使用此状态代码指示已删除的资源。
411Length Required(要求长度指示)服务器拒绝了请求,因为Content-Length头字段未定义并且服务器需要它。
412Precondition Failed(先决条件失败)客户端在其标头中指明了服务端不满足的先决条件。
413Request Entity Too Large(请求实体太大)请求实体大于服务器定义的限制。服务器可能会关闭连接或返回Retry-After标头字段。
414Request URI Too Long(请求URI太长)客户端请求的URL比服务器愿意解释的要长。
415Unsupported Media Type(不支持的媒体类型)服务器不支持请求数据的媒体格式,因此服务器拒绝请求。
416Requested Range Not Satisfiable(所请求的范围未得到满足)Range请求头域指定的范围无法满足。该范围可能超出目标URL数据的大小。
417Expectation Failed(无法满足期望)此响应代码表示Expect服务器无法满足请求头字段指示的期望。
418I’m a teapot(我是一个茶壶)服务器拒绝尝试用茶壶冲泡咖啡。
421Misdirected Request(被误导的请求)请求指向无法产生响应的服务器。这可以由未配置为请求URL中包含的方案和权限组合生成响应的服务器发送。
422Unprocessable Entity(不可实现的实体)请求格式正确,但由于语义错误而无法遵循。
423Locked(上锁的)正在访问的资源被锁定。
424Failed Dependency(失败的依赖)由于前一个请求失败,请求失败。
425Too Early(过早)表示服务器不愿意冒险处理可能被重放的请求。
426Upgrade Required(升级需要)服务器拒绝使用当前协议执行请求,但在客户端升级到不同的协议后可能愿意这样做。服务器Upgrade在426响应中发送标头以指示所需的协议。
428Precondition Required(先决条件要求)源服务器要求请求是有条件的。此响应旨在防止“丢失更新”问题,即客户端GET修改资源状态并将PUT其发送回服务器,同时第三方已修改服务器上的状态,从而导致冲突。
429Too Many Requests(太多的请求)用户在给定的时间内发送了太多的请求(“速率限制”)。
431Request Header Fields Too large(请求报头字段过大)服务器不愿意处理请求,因为它的头字段太大。在减小请求头字段的大小后,可以重新提交请求。
451Unavailable For Legal Reasons(因法律原因无法使用)用户代理请求了无法合法提供的资源,例如政府审查的网页。

六、服务端错误响应

状态码状态信息含义
500Internal Server Error(内部服务器错误)服务器遇到了不知道如何处理的情况。
501Not Implemented(未实现)服务器不支持请求方法,无法处理。服务器需要支持的唯一方法(因此不能返回此代码)是GET和HEAD。
502Bad Gateway(网关故障)此错误响应意味着服务器在作为网关工作以获取处理请求所需的响应时,得到了无效响应。
503Service Unavailable(未提供此服务)服务器尚未准备好处理请求。常见原因时服务器停机维护或过载。请注意,与此响应一起,应发送一个解释问题的用户友好页面。此响应用于临时条件,并且Retry-After HTTP标头应尽可能包含服务恢复之前的估计时间。网站管理员还必须注意与此响应一起发送的缓存相关标头,因为通常不应缓存这些临时条件响应。
504Gateway Timeout(网关超时)当服务器作为网关无法及时得到响应时,会给出此错误响应。
505HTTP Version Not Supported(不支持的HTTP版本)服务器不支持请求中使用的HTTP版本。
506Variant Also Negotiates(变体也协商)服务器有内部配置错误:选择的变体资源被配置为参与透明内容协商本身,因此不是协商过程中的适当端点。
507Insufficient Storage(存储不足)无法对资源执行该方法,因此服务器无法存储成功完成请求所需的表示。
508Loop Detected(循环检测)服务器在处理请求时检测到无限循环。
510Not Extended(不延长)服务器需要对请求进行进一步扩展才能满足它。
511Network Authentication Required(网络身份验证要求)表示客户端需要进行身份验证才能获得网络访问权限。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值