JavaScript中cookie的认知

定义
在 HTTPS 协议还未诞生之前,Web 浏览器和服务器之间需要通过 HTTP 协议进行通信,HTTP 协议是一种无状态协议,当服务器与浏览器之间完成一次交互(浏览器向服务器发送请求,服务器做出响应)后,链接会被关闭,服务器就会忘记浏览器的一切。Cookie 就是为了让服务器能够记住浏览器而发明的。

当使用浏览器访问某个页面时,可以将一些浏览器的信息会存储在 Cookie 中,浏览器每次向服务器发送请求时,Cookie 会作为请求的一部分一同发送给服务器,这样服务器就能通过 Cookie 中的信息来记住浏览器了。
Cookie只能在用服务器启动的页面中正常使用.解决办法:vscode安装live server
语法

创建一个Cookie

document.cookie = 'key = value'
document.cookie = 'qq = 123456789'
// 设置一条cookie
document.cookie = 'qq = 123456789'
document.cookie = 'password = 000000'
// 设置多条cookie

JS 修改或更新 Cookie 的值
修改或更新 Cookie 值的唯一方法就是创建一个同名的 Cookie,来替换要修改的 Cookie。注意,若要修改的 Cookie 定义了 path 属性,在修改该属性时也要定义相同的 path 属性,否则会创建一个新的 Cookie。示例代码如下:

<script>
  // 创建一个 Cookie
  document.cookie = "url=http://c.biancheng.net/; path=/; max-age=" + 30*24*60*60;
  // 修改这个 Cookie
  document.cookie = "url=http://c.biancheng.net/javascript/; path=/; max-age=" + 365*24*60*60;
</script>

JS 删除 Cookie
删除 Cookie 与修改 Cookie 类似,只需要重新将 Cookie 的值设置为空,并将 expires 属性设置为一个过去的日期即可,如下例所示:

<script>
  // 创建一个 Cookie
  document.cookie = "url=http://c.biancheng.net/; path=/; max-age=" + 30*24*60*60;
  // 删除这个 Cookie
  document.cookie = "url=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
</script>

设置一条带有过期时间的Cookie
不管设置的是哪个时区的时间,它都会按照世界标准时间去设置,以中国为例,处于东八区,如果需要设置一个过期时间的话 ,需要先往后面调整8个小时,然后再加上需要的过期时间

//例如:现在需要设置一条10秒后过期的cookie
//思路:
//1.获取当前时间
//2.将当前时间往后调整8个人小时
//3.把调整后的时间加上我们需要设置的时间

var timer = new Date()
timer.setTime(timer.getTime()-1000*60*60*8+1000*10)
document.cookie = 'vx = 00000;expires=' + timer
console.log(document.cookie)

猜你喜欢

转载自blog.csdn.net/weixin_48649246/article/details/127621472