WEB-Session、Cookie个人理解

由于Http是无状态的请求,导致无法跟踪用户的一系列的请求,比如登陆后的执行的操作如何知道之前是否登录,无法标示当前登录者。这样就诞生了Cookie和Session。
先说Cookie。
Cookie是保存到浏览器端,设置过期时间则持久化到系统硬盘,没有设置过期时间则存储到系统内存中,当前窗口关闭,这cookie消失。和域名、请求相关联,这样就导致了Cookie在多个目录中共享的问题,即跨域请求问题,最为关键的是sessionid,在登录系统后,系统会生成session和sessionid,返回时告诉浏览器sessionid,浏览器下次发送请求时会携带sessionid,起到标示该会话的作用。
Session
Session是保存到服务端,类似于一个map结构,新的一个请求到来后会生成一个session,可以储存一些基础信息,如当前用户id和用户名等,唯一标示为sessionid,会在返回时携带给浏览器端,sessionid为浏览器和服务端之间的纽带。
在这里插入图片描述

Cookie和Session涉及到的应用场景
1 指定时间内免登陆
用户名和密码md5加密后的保存到Cookie中,后台校验Cookie中的用户名和密码即可。
2 记住用户名
输入用户名后用户点了记住用户名则将用户名存储到cookie中。
核心JS代码:

//该函数接收3个参数:cookie名称,cookie值,以及在多少小时后过期。这里约定expireHours为0时不设定过期时间,即当浏览器关闭时cookie自动消失
function addcookie(name,value,expireHours){
      var cookieString=name+"="+escape(value);
      //判断是否设置过期时间
      if(expireHours>0){
             var date=new Date();
             date.setTime(date.getTime()+expireHours*3600*1000);
             cookieString=cookieString+"; expires="+date.toGMTString();
      }
      document.cookie=cookieString;
}

3 分布式session一致性(单点登录)
登录后将用户信息存储到第三方缓存中。
在这里插入图片描述
4 倒计时,无视当前页面刷新,
实现逻辑,将当前倒计时的数字刷新到Cookie中,页面刷新时初始化从cookie中取,不为空则开始倒计时。
参考文章:https://www.jb51.net/article/91756.htm

参考文章:
https://www.cnblogs.com/andy-zhou/p/5360107.html
https://baijiahao.baidu.com/s?id=1612804856429135825&wfr=spider&for=pc
https://www.cnblogs.com/yaowen/p/4819018.html
https://www.cnblogs.com/jirglt/p/4200678.html
https://blog.csdn.net/tanga842428/article/details/78600940
http://mp.weixin.qq.com/s?__biz=MzUzMTA2NTU2Ng==&mid=2247486241&idx=2&sn=4e3eae369b044a636e2760cc69a871d6&chksm=fa497490cd3efd8638db627daf12a923d5a3daf3461d4dc73aba0352ad13b79d42e6ec8e1a79&mpshare=1&scene=24&srcid=#rd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值