• cookie和session的区别


    一、Cookie的特点:
    1、cookie是一门客户端缓存技术
    2、cookie数据由服务器生成,发送给浏览器保存
    3、cookie数据的格式:键值对
    4、cookie数据过期机制:设置expire值
    cookie是一门客户端技术,一般是由服务器生成返回给浏览器客户端来保存的,并且cookie是以键值对的形式保存在浏览器客户端的,每一个cookie都会有名称,值,过期时间...。
    cookie有很多使用场景,在项目中比较常见的有:
    1、登录记住用户名和密码
    2、记录用户浏览记录
      ...
    上面应用中大家最熟悉的应该就是记住用户名这个场景了,以京东网站的登录功能为例,当我们登录了一次京东,后面再去登录页面登录的时候,会发现它会帮你回填之前的用户名,这个场景就是通过cookie技术实现的。

    二、session的特点:
    1、session是一门服务端会话缓存技术。
    2、session由服务器端的web容器创建,保存在服务器端。
    3、session保存数据:键值对形式
    4、session过期:默认30分钟
      session是服务端的会话技术,当用户登录了系统,服务器端的web容器就会创建一个会话,此会话中可以保存登录用户的信息,并且也是以键值对的形式去保存的,现在大部分系统都是使用的session技术来做的鉴权(权限鉴定),即:当用户登录完了才可以访问系统中的一些页面和数据。

      通过fiddler抓包可以发现,login登录接口的响应头里有一个“set-cookie”的头信息,里面就有“JSESSIONID=8AC39619BB5BE*********4337”这个信息,浏览器看到这个响应头就知道要把这个数据写到cookie当中,cookie名称为:“JSESSIONID”,值为:“8AC39619BB5BE*********4337”。这个session会话编号就是服务器返回的。服务器端的这个session会话保存了登录用户的信息。

      登录完成后再访问系统中的任何页面都是有没有问题的,因为后面每次请求都会带上浏览器里cookie里面的这个“JSESSIONID”的值过去。

    三、token机制。
    app项目为例:

    一般app项目都会基于一个token做鉴权。
    因为此时客户端不是浏览器,因此就没有cookie这一说了。
    当用户登录app时,服务器会响应回来一个token信息(一般都是返回的一串唯一的标识符,比如说uuid或其他)。

    服务器端会将登录用户跟token(票据)保存一个映射关系,一般保存在redis或者表里面,服务器端响应回来的token会缓存在手机的本地缓存里,后面手机去访问app的其他页面,就会带着这个token去服务器做验证。
    如果通过这个token能够从redis找到登录用户信息,那么就认为你是已经登录了的用户。

    三者相同的点:

    不论是cookie、session还是token,都可以设置时限,一段时间后,就会失效。当失效之后,再次访问的时候,就需要重新登录了。

  • 相关阅读:
    四则运算
    读书计划
    典型用户和场景分析
    课堂练习--电梯调度
    重力解锁--用户需求调研
    书籍促销活动优惠问题
    小组开发项目--NABC分析
    梦断代码读后感之终结篇
    结对开发-求环状二维数组最大子数组
    结对开发之大数溢出
  • 原文地址:https://www.cnblogs.com/jane4321/p/11148557.html
Copyright © 2020-2023  润新知