📜  js cookie - Javascript (1)

📅  最后修改于: 2023-12-03 15:16:58.501000             🧑  作者: Mango

Javascript中的Cookie

在Web开发中,我们经常需要为用户提供一个能够记住用户信息的功能,方便用户的操作体验,此时就需要使用到Cookie技术。

什么是Cookie

Cookie是HTTP协议中的一种机制,它允许Web服务器向浏览器发送少量数据,而浏览器会把这些数据存储在本地内存中(Session Cookie)或者硬盘上(Persistent Cookie),并在之后的每个HTTP请求中自动发送Cookie到Web服务器。

Cookie由3个属性组成:名称、值和过期时间。过期时间控制着Cookie何时被浏览器删除。

创建Cookie

使用Javascript可以创建、读取、删除Cookie。创建Cookie的方式如下:

documenet.cookie = "name=value;expires=date;path=path;domain=domain;secure";
  • name: Cookie的名称
  • value: Cookie的值
  • expires: Cookie的过期时间,如果不设置,则表示Session Cookie,在浏览器关闭的时候删除
  • path: Cookie的有效路径,默认为当前文档路径
  • domain: Cookie的有效域名
  • secure: 是否只有HTTPS连接才能发送Cookie,默认为false
读取Cookie

读取Cookie可以使用以下代码:

var cookieValue = document.cookie.replace(/(?:(?:^|.*;\s*)COOKIE_NAME\s*=\s*([^;]*).*$)|^.*$/, "$1");

COOKIE_NAME指的是Cookie的名称。

删除Cookie

删除Cookie只需要将Cookie的过期时间设置为一个过去的时间,如下所示:

document.cookie = "COOKIE_NAME= ;expire=Thu, 01 Jan 1970 00:00:00 GMT";

需要注意的是,删除Cookie的同时,还需要设置Cookie的路径与域名,保证能够正确找到要删除的Cookie。

注意事项
  • Cookie的大小限制为4KB左右,长度超过浏览器会自动截取
  • Cookie的数量也有限制,不同浏览器的数量限制不同,一般为20-50个左右
  • Cookie是存储在本地的,因此可以被用户或者黑客轻易获取和篡改,因此敏感信息需要使用其他方式存储
参考资料