zoukankan      html  css  js  c++  java
  • node之cookie和session对比

    (1)session作用

      记录登录状态

      接下来结合几个例子分析下session和cookie的区别

    (2)cookie场景(小纸条)

      例如,老师给学生发苹果,学生领完苹果后,背后会被贴条标记,表示已经领过苹果。

      需求:领过苹果的同学不能再领了... ...,但人数过多,老师记不清,所以只能你自己记住你自己

    之所以有这样的需求,因为HTTP协议是无状态协议,HTTP无状态协议,是指协议对于事务处理没有记忆能力。

      万一领过苹果的学生再次来领取,老师便可以根据背后的贴条做出判断。

      重点:标记在学生自己身上,即自己记住自己.cookie便是保存在客户端本地。

    cookie保存客户端本地,一般用来保存不太敏感的数据。但不能用来保存用户的登录状态。

      因为登录状态一般用来鉴定权限,例如爱奇艺VIP,如果把登录状态使用cookie保存在客户端,例如isVIP:true,则容易在客户端进行伪造... ...

    cookie一般用来记住用户名、购物车数据等等... ...

      对于敏感信息,则推荐使用session存储在服务端

    (3)无状态

    所谓http是无状态协议,言外之意是说http协议没法保存客户机信息,也就没法区分每次请求的不同之处。关于http无状态阻碍了交互式应用程序的实现。
    比如记录用户浏览哪些网页、判断用户是否拥有权限访问等。于是,两种用于保持HTTP状态的技术就应运而生了,一个是Cookie,而另一个则是Session。

    (4)session(超市储物柜)

      针对于cookie不能存储敏感信息的缺点,这里我们使用session来解决,将敏感信息存储在服务端。

       例如:超市的电子储物柜在使用时需要开柜拿票,回头拿着票来取物。

    此时便可以这样理解
        超市:服务端
        你:客户端(二维码小票就是开箱的凭证)

      真正的数据存储在服务端的电子柜里,而你拿的只是凭证,且凭证是唯一的,一旦丢失,从服务器角度将便不可找回。

       

    .

  • 相关阅读:
    Caused by: java.lang.ClassNotFoundException: org.w3c.dom.ElementTraversal
    Linux系统下jar包的启动方式
    1062 Error 'Duplicate entry '1438019' for key 'PRIMARY'' on query
    Linux学习笔记 --iptables防火墙配置
    MySQL学习笔记_10_MySQL高级操作(下)
    MySQL学习笔记_9_MySQL高级操作(上)
    MySQL学习笔记_8_SQL语言基础复习
    Linux 学习笔记_12_文件共享服务_4_SSH
    Linux 学习笔记_12_文件共享服务_3_NFS网络文件服务
    MySQL学习笔记_7_MySQL常用内置函数
  • 原文地址:https://www.cnblogs.com/jianxian/p/12298236.html
Copyright © 2011-2022 走看看