在 JavaScript 中解析 HTTP Cookie

JavaScriptJavaScriptBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将深入探讨在 JavaScript 中解析 HTTP cookie 的主题。本实验的目的是提供一个实践经验,让你了解如何从 HTTP 头字符串中提取和组织 cookie 数据。在本实验结束时,你将清楚地了解如何使用 parseCookie 函数来创建一个包含所有 cookie 名值对的对象。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") subgraph Lab Skills javascript/variables -.-> lab-28539{{"在 JavaScript 中解析 HTTP Cookie"}} javascript/data_types -.-> lab-28539{{"在 JavaScript 中解析 HTTP Cookie"}} javascript/arith_ops -.-> lab-28539{{"在 JavaScript 中解析 HTTP Cookie"}} javascript/comp_ops -.-> lab-28539{{"在 JavaScript 中解析 HTTP Cookie"}} javascript/array_methods -.-> lab-28539{{"在 JavaScript 中解析 HTTP Cookie"}} javascript/higher_funcs -.-> lab-28539{{"在 JavaScript 中解析 HTTP Cookie"}} end

要在 JavaScript 中解析 HTTP Cookie 头字符串并返回所有 cookie 名值对的对象,请执行以下步骤:

  • 打开终端/SSH 并输入 node 以开始练习编码。
  • 使用 String.prototype.split() 将键值对彼此分开。
  • 使用 Array.prototype.map()String.prototype.split() 在每对中分离键和值。
  • 使用 Array.prototype.reduce()decodeURIComponent() 创建一个包含所有键值对的对象。

以下是实现上述步骤的 parseCookie() 函数的示例:

const parseCookie = (str) =>
  str
    .split(";")
    .map((v) => v.split("="))
    .reduce((acc, v) => {
      acc[decodeURIComponent(v[0].trim())] = decodeURIComponent(v[1].trim());
      return acc;
    }, {});

你可以按如下方式测试该函数:

parseCookie("foo=bar; equation=E%3Dmc%5E2");
// { foo: 'bar', equation: 'E=mc^2' }

总结

恭喜你!你已经完成了“解析 Cookie”实验。你可以在 LabEx 中练习更多实验来提升你的技能。