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;
}
经验分享 程序员 微信小程序 职场和发展