最近正好使用了一下子 Koa ,在这说一下本身对各个 请求码的看法和使用场景,懒人直接看 200、400、40一、40三、40四、500 就能够了。
其中 2XX/3XX 其实都是请求成功,可是结果不一样。4XX 是请求出错,5XX 是服务器处理出现错误。html
200
这个最容易理解,就是正确的请求返回正确的结果,若是不想细分正确的请求结果均可以直接返回200。缓存
201
表示资源被正确的建立。好比说,咱们 POST 用户名、密码正确建立了一个用户就能够返回 201。服务器
202
请求是正确的,可是结果正在处理中,无法返回对应的结果。好比说,咱们请求一个须要大量计算的结果,可是并无计算结束时,能够返回这个,这时候客户端能够经过轮询等机制继续请求。markdown
203
请求的代理服务器修改了源服务器返回的 200 中的内容,通常用不到。好比说,咱们经过代理服务器向服务器 A 请求用户信息,服务器 A 正常响应,但代理服务器命中了缓存并返回了本身的缓存内容,这时候它返回 203 告诉咱们这部分信息不必定是最新的,咱们能够自行判断并处理。网络
204
请求正确,可是没有须要返回的内容。好比说,咱们请求删除某个用户,删除成功能够返回 204。ide
205
相似 204,可是要求请求者重置视图,通常也用不到。好比说,咱们请求删除某个用户,服务器返回 205 的话,咱们就刷新如今的用户列表。post
206
请求成功,但根据请求头只返回了部份内容。好比说,咱们下载一部片,共有 10 部分,咱们把请求也分红了 10 次(防止一次请求过大),这时候服务器就能够返回 206 并在其头部告诉咱们这是哪一部分,而后再根据这个信息进行拼装。atom
300
请求成功,但结果有多种选择。好比说,咱们下载一部片,服务器有 avi、mp4 等格式,这时候能够返回 300,并在 body 里告知有哪些格式,而后用户能够根据这些格式再次请求。.net
301
请求成功,可是资源被永久转移。好比说,咱们要下载葫芦娃,可是因为旧的存储服务商涨价了,如今要使用新的存储服务了,要去新地址下载,这时候能够返回 301,并在 header 的 Location 中告知新的地址,之后也应当到这个地址下载。代理
302
请求成功,可是资源被临时转移了。和 301 不一样的是,除非是 HEAD 请求,不然新地址的信息应当在 body 中返回,而且资源只是临时转移,之后不该当经过新地址来下载。
303
相似 302,但要求使用 GET 来访问新的地址来获取资源。
304
请求的资源并无被修改过。好比说,咱们发送请求想看看 5.20 后的情侣信息,服务器查询没有新的情侣信息产生,这时候能够返回 304,而后客户端能够继续用旧的数据。
305
请求的资源必须经过代理访问。好比说,咱们想请求服务器 A 上新的 iPhone 的信息,可是须要经过代理服务器才能访问,若是直接请求了服务器 A,没有通过代理服务器,这时候服务器 A 就能够返回 305 从而告诉咱们应当访问代理服务器。
306
不用了。
307
相似 302,但要求使用原有的请求方式来经过新地址获取资源。
308
相似 301,但要求使用原有的请求方式来经过新地址获取资源。
400
请求出现错误,好比请求头不对等,全部不想明确区分的客户端请求出错均可以返回 400。
401
没有提供认证信息。好比说,请求的时候没有带上 Token 等。
402
为未来的须要所保留的状态码。
403
请求的资源不容许访问。好比说,你使用普通用户的 Token 去请求管理员才能访问的资源。
404
请求的内容不存在。
405
请求的方法不容许使用。好比说,服务器只实现了 PATCH 了局部更新资源,并无实现 PUT 来替换资源,而咱们使用了 PUT,这时候服务器能够返回 405 来告知并无实现对 PUT 的相关处理。
406
请求的资源并不符合要求。好比说,咱们 header 里请求 JSON 格式的数据,可是服务器只有 XML 格式的数据,这时候能够返回 406 告知。
407
相似 401,可是要求必须去同代理服务器进行认证。
408
客户端请求超时。咱们想 POST 建立一个用户,虽然创建了链接,可是网络很差,服务器在规定时间内没有获得咱们的请求信息,这时候服务器能够返回 408 告诉咱们超时了。而后咱们能够从新发送请求。
409
请求冲突。好比说,服务器要求不一样用户不能重名,服务器已经有了一个名叫小伟的用户,这时候咱们又想建立一个名叫小伟的用户,服务器能够返回 409,告诉咱们冲突了,也能够在 body 中明确告知是什么冲突了。
410
请求资源曾经存在,但如今不存在了。好比说,咱们下载葫芦娃,可是由于版权被删了,下载不了了,这时候服务器返回 410,告诉咱们洗洗早点睡。
411
没有提供请求资源的长度。好比说,咱们下载葫芦娃,服务器只容许咱们分部分下载,咱们若是不告诉服务器咱们要下载哪部分,服务器就返回 411 警告咱们。
412
请求的资源不符合请求头中的 IF-* 的某些条件。好比说,咱们下载葫芦娃,而后在请求头告知服务器要 5.20 后更新过的,服务器没有,因而返回了 412。
413
请求体过大。好比说,服务器要求上传文件不能超过 5M,可是咱们 POST 了 10M,这时候就返回 413。
414
请求的 URI 太长了。好比说,咱们提供了太多的 Query 参数,以致于超过了服务器的限制,这时候能够返回 414。
415
不支持的媒体类型。好比说,咱们上传了一张七娃的 GIF 动图,而服务器只容许你上传 PNG 图片,这时候就返回 415。
416
请求的区间无效。好比说,咱们分部分下载时请求葫芦娃的 10 分钟到 12 分钟的内容,可是这部葫芦娃只有 1 分钟的内容,这时候就返回 416。
417
预期错误。指服务器无法知足咱们在请求头里的 Expect 相关的信息。
418
我是个茶壶。这是一个愚人节的玩笑,这个状态码就是用来搞笑的。
500
服务器错误。无法明肯定义的服务器错误均可以返回这个。
501
请求尚未被实现。好比说,咱们请求一个接口来自动拒绝项目经理的要求,可是这个接口只是美好的想象,并无被实现,这时候能够返回 501。
502
网关错误。好比说,咱们向服务器 A 请求下载葫芦娃,可是 A 其实只是一个代理服务器,他得向 B 请求葫芦娃,可是不知道为啥 B 不理他或者给他错误,这时候哦能够 A 返回 502 用来表示 B 这家伙傲娇了。
503
服务暂时不可用。好比说,服务器正好在更新代码重启。
504
相似 502,可是这时候是 B 不理 A,超时了 。
505
请求的 HTTP 版本不支持。好比说,如今强行根据 HTTP 1000 来请求。
连接:https://www.zhihu.com/question/58686782/answer/159603453
来源:知乎
著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。
参考连接
https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#cite_note-15
http://racksburg.com/choosing-an-http-status-code/(感谢 @余博伦 大佬的答案)