JS

梗概

  • js每次写入cookie对象都是创建一个cookie

示例

写入Cookie通常是在客户端(如浏览器)中通过以下几种方式完成的:

1. 使用JavaScript写入Cookie

在网页中,你可以使用JavaScript来设置Cookie。以下是一个简单的示例:

// 创建或更新一个cookie
document.cookie = "username=JohnDoe; expires=Fri, 31 Dec 2024 23:59:59 GMT; path=/";

解释:

  • "username=JohnDoe":这是Cookie的名称和值,表示设置一个名为username的Cookie,其值为JohnDoe
  • "expires=Fri, 31 Dec 2024 23:59:59 GMT":这是Cookie的过期时间。超过这个时间,浏览器将自动删除该Cookie。如果不指定expires,那么这个Cookie会在会话结束时(通常是关闭浏览器时)被删除。
  • "path=/":指定Cookie的适用路径。/表示整个网站都可以访问这个Cookie。 你可以在JavaScript中动态地生成这些值来适应不同的需求。

2. 使用HTTP响应头写入Cookie

在服务器端,你可以通过HTTP响应头设置Cookie。当浏览器收到这个响应时,会自动将Cookie存储在客户端。

Set-Cookie: username=JohnDoe; Expires=Fri, 31 Dec 2024 23:59:59 GMT; Path=/; HttpOnly

解释:

  • Set-Cookie:这是用来设置Cookie的HTTP头字段。
  • HttpOnly:如果指定了这个选项,Cookie只能通过HTTP(S)传输,不能通过JavaScript访问(即document.cookie无法读取)。这有助于防范某些类型的XSS攻击。

3. 设置Cookie的其他属性

除了expirespath,还有其他常用的属性:

  • Domain: 指定Cookie适用的域名。例如,Domain=example.com表示该Cookie对example.com及其子域名(如sub.example.com)有效。
  • Secure: 只有在使用HTTPS时才会发送该Cookie,增强安全性。
  • SameSite: 控制Cookie是否在跨站请求中发送。可以设置为StrictLaxNone

示例:通过JavaScript设置更多属性的Cookie

document.cookie = "username=JohnDoe; expires=Fri, 31 Dec 2024 23:59:59 GMT; path=/; domain=example.com; secure; samesite=Lax";

4. 使用浏览器开发者工具

在浏览器的开发者工具中(通常按 F12Ctrl+Shift+I 打开),你可以手动添加、编辑或删除Cookie。

注意事项

  • 敏感信息:不要在Cookie中存储敏感的用户信息(如密码),因为它们可能在客户端被读取。
  • 大小限制:大多数浏览器对每个Cookie的大小限制为4KB,总共允许的Cookie数也有上限。 通过这些方式,你可以在不同场景下灵活地设置和管理Cookie。