5 分钟快速掌握 HTTP 状态码

做为一个开发人员,咱们天天都会花大量的时间来处理先后端间的数据请求与响应,这就须要咱们有足够的 HTTP 知识,本节将针对 HTTP status code 展开探讨。前端

1、 什么是 HTTP 状态码

Fernando Doglio在他的书中 - 使用NodeJS的REST API开发将状态代码定义为:git

一个数字,总结了与之相关的响应。github

当客户端向服务器发出请求时,服务器提供HTTP(超文本传输协议)响应状态代码,这使咱们可以了解网站后端发生的状况,肯定须要修复的错误。后端

2、HTTP 状态码备忘单

响应信息

1xx:临时回应,表示客户端请继续 📝

1xx 的状态会被浏览器 HTTP 库直接处理掉,不会让上层应用知晓浏览器

成功

200 - OK:成功传输 💯

请求成功缓存

201 - Created:建立 🆕

资源已建立,服务器已确认。它对POST或PUT请求的响应颇有用。此外,新资源能够做为响应正文的一部分返回。服务器

204 - No content:没有内容 👌🥚

该操做请求成功,但没有返回任何内容。对于不须要响应主体的操做颇有用,例如 DELETE 操做。网站

205 - Reset Content:重置内容 🐾

表示请求成功,但响应报文不含实体的主体部分,可是与 204 响应不一样在于要求请求方重置内容搜索引擎

重定向

3xx: 当服务器通知客户端请求的目标有变化,但愿客户端进一步处理,将使用这些。代理

301 - moved permanently:永久移动 🏃

用于通知浏览器所请求的文件已被移动,而且它应该从服务器提供的位置请求文件,并记住该新位置以供未来参考。这只能用于HTTP GET和HEAD请求。

此资源已移至另外一个位置,并返回该位置。当URL随着时间的推移而变化时(尤为是因为版本,迁移或其余一些破坏性更改),此标头特别有用,保留旧标头并将重定向返回到新位置容许旧客户端更新其引用本身的时间。

302 - found(找到):临时重定向 🕘

类似301; 但它是临时重定向。它将客户端从旧资源引导到新资源,但它不会告诉搜索引擎更新页面的索引。告诉客户端浏览另外一个URL。

304- Not Modified:客户端缓存没有更新 👯

产生的前提:客户端本地已经有缓存的版本,而且在 Request 中告诉了服务端,当服务端经过时间或 tag,发现没有更新的时候,就会返回一个不含 body 的 304 状态码

307 - temporary redirect:暂时移动🚶

临时重定向,和302含义相似,可是指望客户端保持请求方法不变向新的地址发出请求

客户端错误

4xx: 定义客户端错误,这是服务器认为Web浏览器出错的地方。

400 - bad request:不良请求 👎

发出的请求有问题(例如,可能缺乏一些必需的参数)。对400响应的良好补充多是开发人员可用于修复请求的错误消息

401 - unauthorized:未经受权 🚫🚫️

当拥有请求的用户没法访问所请求的资源时,对身份验证特别有用

403 - forbidden:禁止 ⛔️ - 资源不可访问,但与401不一样,身份验证不会影响响应。

一般在请求的文件有效但文件没法提供时发出,这一般是因为服务器端权限问题致使Web服务器不容许将文件提供给客户端。

401 与 403 的区别:

  • 401 我去找我的,门卫说不认识我不让我进
  • 403 我去找我的,门卫说认识我,可是我不能进,由于我不配

404 - Not Found:请求的资源不存在 🔍🔎🔦

这多是最多见且常常出现的错误。当Web浏览器请求服务器上不存在的文件时,会发生此问题。

405 - 方法不容许 ✖️🙅

不容许在资源上使用HTTP动词**(例如POST,GET,PUT等)** - 例如,在只读资源上执行PUT。

418 :It's a teapot,来自 ietf 的一个愚人节玩笑 😈

服务端错误

5xx: 定义服务器端错误。尽管客户端提供了有效请求,但这些都是服务器部分发生的错误。

500 - internal sever error:内部服务器错误 🙈

这是一个不幸的模糊通用错误代码。只要认为服务器遇到与任何更具体的错误代码不匹配的错误,就会发出它。

501 - Not Implemented:未实现 🙀

服务器要么不识别请求方法,要么不支持请求。

502 - Bad Gateway:错误网关 🤦‍♀

当Web浏览器联系充当另外一个服务器的代理的Web服务器而且从另外一个服务器得到无效响应时,会发生这种状况。

503 - service unavailable:服务不可用 🤭👻

这一般在服务器暂时性错误(暂时处于超负载或正在停机维护)的状况下遇到,此时服务器没法处理请求,能够一会再试

系列文章

想看更过系列文章,点击前往 github 博客主页

走在最后,欢迎关注:前端瓶子君,每日更新

前端瓶子君
相关文章
相关标签/搜索