1、HTTP 状态码
HTTP 状态码的英文为 HTTP Status Code。在前端开发的日常工作中,免不了向服务器发请求,服务器在接收到请求后会返回一个包含 HTTP 状态码的信息头(server header),用以响应浏览器的请求。HTTP 状态码有很多,感兴趣的同学可以移步 菜鸟教程,这里只总结几种比较常见的 HTTP 状态码,以备不时之需。下面是常见的 HTTP 状态码:
- 200 - 请求成功
- 301 - 资源(网页等)被永久转移到其它 URL
- 404 - 请求的资源(网页等)不存在
- 500 - 内部服务器错误
2、HTTP状态码分类
HTTP 状态码由三个十进制数字组成,其中第一个十进制数字定义了状态码的类型,HTTP 状态码共分为 5 种类型:
分类 | 分类描述 |
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
3、至少说出七八个吧?
只知道 200、404、500 这几个状态码是不够的,为什么?据我所知,不少的人面试的时候会遇到这种问题,让你说出至少七八个状态码,虽说上述的三个状态码是最常见的,但是你说不上几个其他的来,是不是多少有点差强人意?所以,即使是背,也最好多背几个,可能现在没遇到,但万一有一天被问到,你是否会后悔没抽十分钟背几个?
3.1、1xx — 信息
- 100(Continue): 服务器已经接收到请求头,并且客户端应继续发送请求主体
3.2、2xx — 成功
200(OK):表示请求成功。一般用于 GET 与 POST 请求
202(Accepted): 服务器已接受请求,但尚未处理
204(no content):表示请求成功,但是服务器并未返回任何内容
205(reset request):表示请求成功,但服务器并未返回任何内容,与 204 不同的是要求请求方重置内容
3.3、3xx — 重定向
301(Moved Permanently): 永久重定向,表示请求的资源已分配了新的 URL
302(Found):临时重定向,表示请求的资源临时分配了新的 URL
303(See Other):表示请求的资源还存在另外一个 URL,可以通过 GET 与 POST 请求访问
304(Not Modified):未修改,所请求的资源未修改,服务器返回此状态码时,不会返回任何资源
3.4、4xx — 客户端错误
400(Bad Request):表示请求的报文存在语法错误,服务器无法解析
401(Unauthorized):表示发送的请求需要有通过 HTTP 认证的认证信息
403(Forbidden):服务器理解请求客户端的请求,但是拒绝执行此请求
404(Not Found):表示服务器无法根据客户端的请求找到资源(网页)
409(Conflict):表示请求的资源与资源的当前状态发生冲突
410(Gone):表示服务器上的某个资源被永久性的删除
414(Request-URI Too Long):请求的 URL 长度超过了服务器能够解释的长度,因此服务器拒绝对该请求提供服务
3.5、5xx — 服务端错误
- 500(Internal Server Error):服务器内部错误,无法完成请求
- 503(Service Unavailable):由于超负载或系统维护,服务器暂时的无法处理客户端的请求
4、推荐一个形象的状态猫
首先恭喜你,发现了宝藏!
如果你觉得单纯应付面试背这些状态码比较枯燥,那这里给你推荐一个有名的 状态码 "猫" 图,看猫图认识 HTTP 状态码,有的猫图特别形象,我自己看的时候差点要笑死了。
这里有一个博主整理的不错,感兴趣的同学可以看一下,看“猫”片, 读懂HTTP状态码(多猫慎入)