JavaScript 正则表达式
JavaScript jQuery 

JavaScript Cookie


在 JavaScript 中,Cookie 是一种用于存储在客户端(即用户的浏览器)中的小型文本文件,通常包含一些关于用户和网站的信息。Cookie 的主要目的是在客户端和服务器之间存储状态信息,以便在多个页面或多个访问之间保持用户的状态和数据。


创建和操作 Cookie

JavaScript 可以通过 document.cookie 属性来读取和设置 Cookie。下面是一些常见的操作:


设置 Cookie

要设置一个 Cookie,可以将一个符合特定格式的字符串赋值给 document.cookie 属性:

document.cookie = "name=value; expires=date; path=path; domain=domain; secure";

name=value:设置 Cookie 的名称和值。

expires=date:Cookie 的过期时间,格式为 expires=GMTString。如果未指定过期时间,Cookie 将成为会话 Cookie,仅在浏览器会话期间有效。

path=path:指定 Cookie 的路径,默认为当前页面路径。

domain=domain:指定 Cookie 的域,默认为当前域。

secure:如果设置了该属性,则 Cookie 只能通过 HTTPS 连接发送。



例如,设置一个有效期为一天的 Cookie:

let now = new Date();
let expirationDate = new Date(now.getTime() + 24 * 60 * 60 * 1000); // 1 day later
document.cookie = "username=John; expires=" + expirationDate.toUTCString() + "; path=/";


读取 Cookie

要读取所有的 Cookie,可以访问 document.cookie 属性:

let cookies = document.cookie;
console.log(cookies);

document.cookie 返回一个字符串,包含当前文档所有可用的 Cookie。


删除 Cookie

要删除一个 Cookie,可以通过设置其过期时间为过去的日期来实现:

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";

这会立即使 Cookie 失效,浏览器会将其删除。


注意事项

安全性:敏感信息不应该存储在 Cookie 中,因为 Cookie 的内容可以被用户查看和修改。

大小限制:单个 Cookie 大小通常受到限制,通常为 4KB。

同源策略:Cookie 遵循同源策略,即一个网页只能访问属于自己域名、路径和端口的 Cookie。

// 设置一个 Cookie
let expirationDate = new Date();
expirationDate.setDate(expirationDate.getDate() + 7); // Cookie 有效期为一周
document.cookie = "favoriteColor=blue; expires=" + expirationDate.toUTCString() + "; path=/";
// 读取所有 Cookie
let allCookies = document.cookie;
console.log("All Cookies:", allCookies);
// 删除一个 Cookie
document.cookie = "favoriteColor=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";


以上是使用 JavaScript 操作 Cookie 的基本方法和示例。通过这些操作,可以在客户端存储和管理用户相关的状态信息,从而实现个性化和持久化的网站体验。