cookie增删改查,用户追踪

一、 关于cookie
cookie:是服务器发送给用户浏览器并保存在本地的一小块数据,为了用来标识用户身份而存储在本地的数据,如果浏览器存在cookie,那么它始终在同源的HTTP请求中携带,即使不需要也会在浏览器和服务器之间来回传递,而且它会有大小限制,不能超过4KB。
cookie存在的意义:因为HTTP协议是无状态的,当浏览器向服务器发出请求,服务器没办法区分浏览器用户身份及用户相关操作,所以cookie被作为一种存储手段,但是浏览器每次请求都会在请求头中带上cookie,会对性能方面有一定的影响,且它有大小限制,因此后来浏览器又退出了新的API ->storage
二、 cookie的主要使用场景
● 用户行为追踪
● 会话状态管理(登录状态)
● 个性化设置(用户自定义)
三、 跟踪用户的方案
● HTTP headers
● IP地址 IP地址是动态的
● 用户登录
● 胖url
● cookie:服务器发送给用户浏览器并保存在本地的一小块数据 max-age过期时间的单位是秒
四、 cookie的创建
1、浏览器自动创建
当服务器收到HTTP请求后,服务器可以在响应头中设置Set-cookie选项,浏览器在收到响应后会自动把cookie保存下来,之后浏览器对服务器的每一次请求都会通过请求头把cookie携带上,发送到服务器。
2、通过js设置cookie
创建及设置cookie的过期时间

document.cookie = 'name=joy';
// 通过max-age或者expires设置过期时间, 过期后浏览器cookie会自动清空
document.cookie = 'age=23;max-age=10';//10秒后过期
var date = new Date(),
     day = date.getDate();
date.setDate(date + 8);
document.cookie = ' age=24;expires=' + d;//8天后过期

设置域:指定cookie在哪个域下可以被接收,如果不指定默认是当前源
设置path:指定cookie在当前主机下哪些路径可以接受cookie
设置HttpOnly: 不能通过JavaScript访问cookie
设置secure:标记为secure的cookie只能通过HTTPS协议加密的请求发送给服务端,HTTP无法拿到
设置someSite:三种取值
None:浏览器在同站请求和跨站请求下都会发送cookies
Strict:只在相同站点下发送cookies
Lax: 与Strict类似,不同的是它可以从外站通过链接导航到该站
Lax: 与Strict类似,不同的是它可以从外站通过链接导航到该站
五、 JS设置cookie的增删改
1、增加cookie,如果两次增加的cookie具有相同键名,后边的会覆盖前面的,但是在不同Domain和path下,不会覆盖

document.cookie = 'color=blue';//增加一个cookie

2、删除cookie,其实就是设置过期时间为负数
封装设置cookie的函数

var setCookie = {
    set: function(key, value, expTime){
      document.cookie = key + '=' + value + 'max-age=' + expTime;
      //方便链式调用
      return this;
    },
  delete: function(key){
   return this.set(key, '', -1)
  },
  get: function(key, cb){
      var cookie = document.cookie,
          cookieArr = cookie.split(';'),
          len = cookieArr.length,
          cookieItem;
      for(var i = 0; i < len; i++){
        cookieItem = cookieArr[i];
        var itemArr = cookieItem.split('=');
        if(itemArr[0] === key){
        cb(itemArr);
        } else {
          cb(undefined);
        }
      }
      return this;
  }
  }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值