如何使用 http 模块设置和获取 Cookie?

推荐答案

设置 Cookie

在 Node.js 中,可以使用 http 模块的 setHeader 方法来设置 Cookie。以下是一个示例:

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

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

获取 Cookie

要获取客户端发送的 Cookie,可以从请求头中解析 Cookie 字段:

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

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

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

本题详细解读

设置 Cookie

在 HTTP 响应中,Set-Cookie 头部用于设置 Cookie。每个 Set-Cookie 头部可以包含多个属性,如 Max-AgeHttpOnlySecure 等。这些属性用于控制 Cookie 的行为:

  • Max-Age:指定 Cookie 的有效期(以秒为单位)。
  • HttpOnly:防止客户端脚本访问 Cookie,增强安全性。
  • Secure:仅在使用 HTTPS 时发送 Cookie。

获取 Cookie

在 HTTP 请求中,客户端会将所有与当前域名匹配的 Cookie 通过 Cookie 头部发送到服务器。服务器可以通过解析 req.headers.cookie 来获取这些 Cookie。通常,Cookie 头部的值是一个字符串,包含多个键值对,用分号和空格分隔。

注意事项

  • 在设置 Cookie 时,确保使用正确的属性来增强安全性。
  • 在获取 Cookie 时,可能需要手动解析 Cookie 头部的字符串,以提取所需的键值对。
  • 如果 Cookie 中包含敏感信息,建议使用 HTTPS 来加密传输。
纠错
反馈