这是我参与「第五届青训营」笔记创作活动的第 6 天
前言
HTTP状态码一般用于表示特定的HTTP请求是否成功完成,不同的状态码会对应一个请求的结果,例如表示成功的200状态码或者是404状态码表示资源未找到,掌握状态码相关的知识,可以帮助大家更快的定位到HTTP交互中可能产生的错误信息,下面让我们一起来看看状态码的分类以及常用的状态码对应的信息。
HTTP状态码
HTTP响应状态码被归为以下五类:
-
100-199 信息响应
-
200-299 成功响应
-
300-399 重定向信息
-
400-499 客户端错误响应
-
500-599 服务端错误响应
100-199 消息响应
100 continue
这个临时响应表明,迄今为止的所有内容都是可行的,客户端应该继续请求,如果已经完成,则忽略它。
101 switch protocol
该代码是响应客户端的 upgrade 请求头发送的,指明服务器即将切换的协议。
200-299 成功响应
200 ok
请求成功。成功的含义取决于 HTTP 方法:
- GET: 资源已被提取并在消息正文中传输。
- HEAD: 实体标头位于消息正文中。
- PUT or POST: 描述动作结果的资源在消息体中传输。
- TRACE: 消息正文包含服务器收到的请求消息。
201 created
表示该请求成功,并创建了一个新的资源,这通常是在post请求和一些put请求当中会出现,并返回的响应码
202 accept
请求已经接收到,但还未响应,没有结果。意味着不会有一个异步的响应去表明当前请求的结果,预期另外的进程和服务去处理请求,或者批处理。
204 no content
对于该请求没有的内容可发送,但头部字段可能有用。用户代理可能会用此时请求头部信息来更新原来资源的头部缓存字段。
300-399 重定向消息
300 multiple choice
请求拥有多个可能的响应。用户代理或者用户应当从中选择一个。(没有标准化的方法来选择其中一个响应,但是建议使用指向可能性的 HTML 链接,以便用户可以选择。)
301 moved permanently
请求资源的 URL 已永久更改。在响应中给出了新的 URL
302 found
此响应代码表示所请求资源的 URI 已 暂时 更改。未来可能会对 URI 进行进一步的改变。因此,客户机应该在将来的请求中使用这个相同的 URI。
303 see other
服务器发送此响应,以指示客户端通过一个 GET 请求在另一个 URI 中获取所请求的资源
304 not modified
这是用于缓存的目的。它告诉客户端响应还没有被修改,因此客户端可以继续使用相同的缓存版本的响应。
400-499 客户端错误响应
400 bad request
由于被认为是客户端错误(例如,错误的请求语法、无效的请求消息帧或欺骗性的请求路由),服务器无法或不会处理请求。
401 unauthorized(没有进行身份验证)
虽然 HTTP 标准指定了"unauthorized",但从语义上来说,这个响应意味着"unauthenticated"。也就是说,客户端必须对自身进行身份验证才能获得请求的响应。
403 forbidden(知道身份但没有权限)
客户端没有访问内容的权限;也就是说,它是未经授权的,因此服务器拒绝提供请求的资源。与 401 Unauthorized 不同,服务器知道客户端的身份。
404 not found
服务器找不到请求的资源。在浏览器中,这意味着无法识别 URL。在 API 中,这也可能意味着端点有效,但资源本身不存在。服务器也可以发送此响应,而不是 403 Forbidden,以向未经授权的客户端隐藏资源的存在。这个响应代码可能是最广为人知的,因为它经常出现在网络上。
405 method not allowed
服务器知道请求方法,但目标资源不支持该方法。例如,API 可能不允许调用DELETE来删除资源。
500-599 服务端错误响应
500 internal server error
服务器遇到了不知道如何处理的情况=.=
501 not implemented
服务器不支持请求方法,因此无法处理。服务器需要支持的唯二方法(因此不能返回此代码)是 GET and HEAD.
502 bad gateway
此错误响应表明服务器作为网关需要得到一个处理这个请求的响应,但是得到一个错误的响应。
503 service unavailable
服务器没有准备好处理请求。常见原因是服务器因维护或重载而停机。请注意,与此响应一起,应发送解释问题的用户友好页面。这个响应应该用于临时条件和如果可能的话,HTTP 标头 Retry-After 字段应该包含恢复服务之前的估计时间。网站管理员还必须注意与此响应一起发送的与缓存相关的标头,因为这些临时条件响应通常不应被缓存。
504 gateway timeout
当服务器充当网关且无法及时获得响应时,会给出此错误响应。
505 http version not supported
此错误响应表明服务器作为网关需要得到一个处理这个请求的响应,但是得到一个错误的响应。
总结
正如文章开头所说,HTTP状态码总是对应着不同的响应信息,本篇文章只是为大家介绍了非常常见的一些状态码,实际所有状态的种类十分丰富,等待着各位去探索去学习。HTTP协议在前端的学习路线中是很重要的一栏,HTTP协议可以说是前端的基石,不断学习才能站得更高看得更远。