# HTTP 状态码

# 2XX 成功

  • 200 OK

请求已成功,请求所希望的响应头或数据体将随此响应返回。 ✨

  • 201 Created

请求已经被实现,而且有一个新的资源已经依据请求的需要而建立

  • 202 Accepted

服务器已接受请求,但尚未处理

  • 204 No content

与 200 相同,但响应头后没有 body 数据

  • 205 Reset Content

服务器成功处理了请求,但不需要返回任何实体内容,205响应禁止包含任何消息体。 与204不同的是,返回此状态码的响应要求请求者重置文档视图。比如用户刚刚提交一个表单,返回205后页面重置,用户可以立即填写下一个表单。

  • 206 Partial Content

HTTP协议允许分片传输。请求头中包含Range字段时,响应需要只返回Range指定的那一段。响应中应包含Content-Range来指示返回内容的范围。

进行范围请求 ✨

# 3XX 重定向

  • 301 moved permanently

永久性重定向,表示资源已被分配了新的 URL

  • 302 found

临时性重定向,表示资源临时被分配了新的 URL ✨

比如你的网站从 HTTP 升级到了 HTTPS 了,以前的站点再也不用了,应当返回301,这个时候浏览器默认会做缓存优化,在第二次访问的时候自动访问重定向的那个地址。

而如果只是暂时不可用,那么直接返回302即可,和301不同的是,浏览器并不会做缓存优化。

  • 304 not modified

当协商缓存命中时会返回这个状态码。详见浏览器缓存

# 4XX 客户端错误

这类的状态码代表了客户端看起来可能发生了错误,妨碍了服务器的处理。 除非响应的是一个HEAD请求,否则服务器就应该返回一个解释当前错误状况的实体。

  • 400 bad request

`请求报文存在语法错误,当前请求无法被服务器理解。 ✨

  • 401 unauthorized

`表示发送的请求需要有通过 HTTP 认证的认证信息 ✨

  • 403 forbidden

`表示对请求资源的访问被服务器拒绝 ✨

  • 404 not found

`表示在服务器上没有找到请求的资源 ✨

  • 408 Request timeout

客户端请求超时,服务器等待了太长时间。

  • 409 Confict

请求的资源可能引起冲突

  • 413 Request Entity Too Large

服务器拒绝处理当前请求,因为该请求提交的实体数据大小超过了服务器愿意或者能够处理的范围。

# 5XX 服务器错误

  • 500 internal sever error

表示服务器端在执行请求时发生了错误 ✨

  • 501 Not Implemented

请求超出服务器能力范围,例如服务器不支持当前请求所需要的某个功能,或者请求是服务器不支持的某个方法

  • 502 Bad Gateway

作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。

如果你在用HTTP代理来翻墙,或者你配置了nginx来反向代理你的应用,你可能会常常看到它。

  • 503 service unavailable

表明服务器暂时处于超负载或正在停机维护,无法处理请求

  • 504 Gateway Time-out

作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器收到响应。

注意与502的区别:502是接收到了无效响应比如Connection Refused; 504是响应超时,通常是被墙了。

  • 505 http version not supported

服务器不支持,或者拒绝支持在请求中使用的 HTTP 版本