JavaScript Cookie


JavaScript Cookie技术文档

什么是Cookie

Web浏览器中的Cookie是一个小型文本数据文件,由网站生成并存储在用户计算机上,常用于存储用户在网站的一些偏好设置、用户名、密码等信息,以便在页面重新加载时保持这些信息。Cookie用于在网站和用户之间传递数据,可以对用户进行跟踪,以及保持登录状态(session)。

Cookie除了用于存储用户信息,在广告追踪方面也起到重要作用,广告商通过Cookie来记录用户的浏览行为以便做出精准广告推送。

Cookie的基础知识

Cookie是一段使用key-value存储方式的文本数据,每个Cookie存储格式为:

key=value; expires=xxxx; path=yyy; domain=zzz; secure
  • key: Cookie的名称,用于在获取Cookie时匹配Cookie
  • value: 存储在Cookie中的值
  • expires: 过期时间,指定Cookie何时过期,默认是会话级Cookie(session Cookie),即关闭浏览器时被自动删除
  • path: 指定文档路径,指定Cookie在哪些路径下可用,若不设置,则默认使用当前文档地址所在的目录
  • domain: 指定哪些域名下可使用Cookie。若不设置,则使用当前文档所在的域名
  • secure: 表示Cookie只在HTTPs协议下传输

JavaScript操作Cookie

JavaScript可以直接操作浏览器中添加、获取、删除Cookie,常用的Cookie操作有:添加Cookie、获取Cookie、删除Cookie。

添加Cookie

以添加一个名为username的Cookie为例:

document.cookie = "username=John";

获取Cookie

以获取名为username的Cookie为例:

let cookies = document.cookie;
let nameStartIndex = cookies.indexOf("username=");
if (nameStartIndex != -1) {
    nameStartIndex += "username=".length;
    let nameEndIndex = cookies.indexOf(";", nameStartIndex);
    if (nameEndIndex == -1) {
        nameEndIndex = cookies.length;
    }
    let name = cookies.substring(nameStartIndex, nameEndIndex);
}

删除Cookie

以删除名为username的Cookie为例:

document.cookie = "username=; expires=" + new Date(0).toUTCString();

实际应用场景

Cookie在Web开发中应用广泛,以下是一些实际应用场景:

  • 用户登录状态保持
  • 记住我功能
  • 网站个性化设置及偏好的存储
  • 多页面跨域数据传递
  • 广告推送跟踪

总结

JavaScript的Cookie是一种在Web中常用的数据传输和存储方式,通过在浏览器端读写Cookie,可以实现很多有用的功能。Cookie几乎存在于所有的Web浏览器中,并且开发和使用Cookie非常简便,不同的Web框架也提供了更便捷的方式来操作Cookie,Web应用开发人员可以充分利用Cookie以实现很多复杂应用。