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以实现很多复杂应用。