npm 包 `@types/forwarded` 使用教程

阅读时长 5 分钟读完

@types/forwarded 是一个用于 TypeScript 的npm 包,它提供了一个类型化的 Forwarded HTTP Header Parser,使得拥有类型安全的 Forwarded Header 解析成为了可能。在这篇文章中,我们将详细地介绍如何使用 @types/forwarded 包,以及如何从中受益。

Forwarded HTTP Header是什么

HTTP 协议允许在请求头中包含一个称为 Forwardeed Header 的特殊头信息。这个头主要是为了识别 HTTP 请求在经过代理或者负载均衡器时,是由哪一个客户端发出的。Forwarded header 形如:

这个 header 可以被用于以下场景:

  1. 代理服务器将请求进一步转发给下一个代理服务器时, 使用by参数来指定发送者,例如 by=192.0.2.60.
  2. 请求服务器回应请求给代理时,使用 for 参数来指定请求者,例如 for=[2001:db8:cafe::17]:4711.
  3. 标示被代理的原始请求所用的协议,例如 proto=https.

如何使用 @types/forwarded

@types/forwarded 是一个支持 TypeScript 的npm 包,可以让我们在 TypeScript 代码中使用 Forwarded 类型和相关的参数来解析 Forwarded header 。下面我们来看看如何使用:

安装

使用以下命令安装 @types/forwarded

引入

在需要用到 Forwarded 的地方,我们可以使用以下语句引入 Forwarded 类型:

解析 Forwarded header

首先,我们需要定义一个含有 Forwarded header 的请求:

然后,我们可以使用 Forwarded.parse 方法来解析 Forwarded header。

这个方法将解析给定的请求对象中的 Forwarded header 并返回一个包含 parse 结果的对象。

Forwarded 类型

使用 Forwarded.parse 方法,我们可以将 Forwarded header 解析为一个对象,可以访问其属性。@types/forwarded 包为我们提供了类型定义。下面是 Forwarded 类型的定义:

-- -------------------- ---- -------
--------- -------------- -
    --- ---------
    ---- ---------
    ----- ---------
    ------ ---------
-
------- ----- --------- -
    ---- ---------
    ----- ---------
    ------ ---------
    ------- ---------
    ------------------- ----------------
    ------ ---------- --------- ----------
    ------ -------------- ---------- - ------- -- - --------- ------- - - ---- -------
-
------ - ---------- -------------- --

其中,ForwardedProps 类型定义了 byforhostproto 四个属性的类型,它们分别是字符串数组,代表不同的 Forwarded 值。Forwarded 类型则是 ForwardedProps 的子集类型,代表包含 Forwarded 值的具体对象。byforhostproto 四个属性都是可选的,因为这些头信息不一定总是存在的。

示例代码

-- -------------------- ---- -------
------ - --------------- - ---- -------
------ - --------- - ---- -------------------

----- ------- - -
    -------- -
        ----------
            ---------------------------------------------------------
    --
- -- ----------------

----- --------- - -------------------------

---------------- ------------------ -- -------------
----------------- ------------------- -- ---------------------------
------------------- --------------------- -- --------

总结

使用 @types/forwarded 可以很方便地解析 Forwarded header,并且在 TypeScript 中具有类型检查的功能,可以帮助我们更加安全地使用 Forwarded header。在我们的代码中,可以使用以上示例代码作为参考。

我们希望本文对您了解 @types/forwarded 的使用有所帮助,也欢迎您在评论区与我们分享您的看法和使用经验。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedc167b5cbfe1ea0611db3

纠错
反馈