简介
在前端开发中,经常要处理 HTTP 请求的返回状态码。@be/http-status 是一个常用的 Node.js 模块,提供了一组 HTTP 状态码的描述信息。本文将介绍如何使用 @be/http-status 模块。
安装
使用 npm 可以很方便地安装 @be/http-status 模块:
npm install @be/http-status
使用方法
导入模块
在代码中导入 @be/http-status 模块:
const HttpStatus = require('@be/http-status');
获取状态码信息
@be/http-status 模块提供了丰富的 HTTP 状态码描述信息。获取状态码信息的方式有两种:
通过数字码获取信息
可以通过数字码获取对应的状态码信息:
const info = HttpStatus.getStatus(200); console.log(info.code) // 200 console.log(info.name) // OK console.log(info.desc) // 请求成功
通过名字获取信息
可以通过状态码的英文名字获取对应的状态码信息:
const info = HttpStatus['HTTP_CREATED']; console.log(info.code) // 201 console.log(info.name) // CREATED console.log(info.desc) // 请求已受理,但资源未创建
判断状态码
@be/http-status 模块提供了丰富的状态码信息,可以通过判断状态码的方式来判断 HTTP 请求的结果:
-- -------------------- ---- ------- ----- ------ - ---- -- ------------------------------ - -------------------- - ---- -- ------------------------------- - ---------------------- - ---- -- ---------------------------------- - --------------------- - ---- -- ---------------------------------- - --------------------- - ---- - --------------------- -
状态码表
@be/http-status 模块提供了完整的 HTTP 状态码表:
数字码 | 英文名 | 中文名 | 描述 |
---|---|---|---|
100 | HTTP_CONTINUE | 继续请求 | 客户端应继续其请求 |
101 | HTTP_SWITCHING_PROTOCOLS | 切换协议 | 客户端要求服务器切换协议 |
102 | HTTP_PROCESSING | 正在处理 | 服务器将继续执行请求 |
200 | HTTP_OK | 请求成功 | 服务器已成功处理请求 |
201 | HTTP_CREATED | 请求已创建 | 请求已受理,但资源未创建 |
202 | HTTP_ACCEPTED | 请求已接受 | 请求已被接受,但尚未处理 |
203 | HTTP_NON_AUTHORITATIVE_INFORMATION | 非权威信息 | 服务器为请求提供信息 |
204 | HTTP_NO_CONTENT | 无内容 | 服务器已成功处理请求,但未返回任何内容 |
205 | HTTP_RESET_CONTENT | 重置内容 | 服务器已成功处理请求,但未返回任何内容 |
206 | HTTP_PARTIAL_CONTENT | 部分内容 | 服务器成功处理了部分 GET 请求 |
207 | HTTP_MULTI_STATUS | 多重状态 | WebDAV请求可能返回多个响应代码的XML信息 |
208 | HTTP_ALREADY_REPORTED | 已报告 | 服务器已经完成了对资源的操作 |
226 | HTTP_IM_USED | 使用的IM | 服务器已满足了对资源的请求,并且响应是实例操作结果的表示 |
300 | HTTP_MULTIPLE_CHOICES | 多种选择 | 客户端请求了多种可用的表示 |
301 | HTTP_MOVED_PERMANENTLY | 永久重定向 | 客户端请求的页面已移动到新位置 |
302 | HTTP_FOUND | 临时重定向 | 客户端请求的页面暂时在其他位置 |
303 | HTTP_SEE_OTHER | 查看其他位置 | 客户端请求的页面可以在其他位置找到 |
304 | HTTP_NOT_MODIFIED | 未修改 | 客户端已经执行了条件GET请求,且文档的内容没有改变 |
305 | HTTP_USE_PROXY | 使用代理 | 客户端请求必须通过代理访问 |
307 | HTTP_TEMPORARY_REDIRECT | 临时重定向 | 服务器目前无法处理请求 |
308 | HTTP_PERMANENT_REDIRECT | 永久重定向 | 服务器目前无法处理请求 |
400 | HTTP_BAD_REQUEST | 错误请求 | 服务器无法识别请求 |
401 | HTTP_UNAUTHORIZED | 未授权 | 需要登录后才能访问 |
402 | HTTP_PAYMENT_REQUIRED | 需要付费 | 预留状态码 |
403 | HTTP_FORBIDDEN | 请求被拒绝 | 服务器拒绝执行请求 |
404 | HTTP_NOT_FOUND | 未找到 | 服务器无法找到请求的资源 |
405 | HTTP_METHOD_NOT_ALLOWED | 方法不允许 | 请求使用的HTTP方法不允许 |
406 | HTTP_NOT_ACCEPTABLE | 无法接受 | 无法使用请求的内容特性响应请求的网页 |
407 | HTTP_PROXY_AUTHENTICATION_REQUIRED | 代理验证要求 | 需要代理授权才能使用代理 |
408 | HTTP_REQUEST_TIMEOUT | 请求超时 | 服务器等候请求时发生超时 |
409 | HTTP_CONFLICT | 冲突 | 由于请求的资源与资源的当前状态之间存在冲突,请求无法完成 |
410 | HTTP_GONE | 已不可用 | 请求的资源不再可用 |
411 | HTTP_LENGTH_REQUIRED | 需要长度 | 服务器不能处理请求,除非客户发送一个Content-Length头 |
412 | HTTP_PRECONDITION_FAILED | 前置条件不满足 | 请求头中指定的一些前置条件失败 |
413 | HTTP_REQUEST_ENTITY_TOO_LARGE | 请求实体过大 | 请求体超过服务器能够处理的大小 |
414 | HTTP_REQUEST_URI_TOO_LONG | 请求URI过长 | 请求的URI超过服务器能够处理的长度 |
415 | HTTP_UNSUPPORTED_MEDIA_TYPE | 不支持的媒体类型 | 由于媒体类型不受支持,服务器无法处理请求 |
416 | HTTP_RANGE_NOT_SATISFIABLE | 范围不符合要求 | 客户端请求的范围无效 |
417 | HTTP_EXPECTATION_FAILED | 预期失败 | 服务器无法满足Expect的请求头信息 |
418 | HTTP_I_AM_A_TEAPOT | 我是茶壶 | 这个HTTP状态码的语义被描绘为:身为茶壶,我坚决拒绝煮咖啡 |
426 | HTTP_UPGRADE_REQUIRED | 需要升级 | 客户端应当切换到TLS/1.0 |
428 | HTTP_PRECONDITION_REQUIRED | 前置条件要求 | 服务器要求先决条件 |
429 | HTTP_TOO_MANY_REQUESTS | 太多请求 | 用户在给定的时间内发送了太多请求 |
431 | HTTP_REQUEST_HEADER_FIELDS_TOO_LARGE | 请求头字段太大 | 服务器无法处理请求,因为请求头字段太大 |
444 | HTTP_CONNECTION_CLOSED_WITHOUT_RESPONSE | 无响应关闭连接 | 服务器没有任何响应 |
451 | HTTP_UNAVAILABLE_FOR_LEGAL_REASONS | 因法律原因不可用 | 此状态码表明该服务器因法律原因不可用 |
499 | HTTP_CLIENT_CLOSED_REQUEST | 请求被客户端关闭 | 客户端关闭请求 |
总结
@be/http-status 模块提供了丰富的 HTTP 状态码信息。在前端开发中,特别是在处理 HTTP 请求时,@be/http-status 模块将是非常有用的工具。通过本文的介绍,相信读者已经能够掌握 @be/http-status 模块的使用方法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005552e81e8991b448d2621