Cookie和Session的区别

1.cookie产生

识别用户
HTTP是无状态协议,这就会出现:当你登录一个页面,服务器无法识别。当你再次访问,服务器不能认识是否是同一个客户端的访问,这就让你重复登录,所以产生了cookie

cookie:第一次访问一个服务器,不携带cookie,这是服务器在响应(response)报文中,命令浏览器携带cookie信息,浏览器再访问同一个域的时候,将把cookie信息携带到请求(request)报文中,从而实现了HTTP能够识别客户端

2.cookie特点

cookie是不加密的
cookie是可以被篡改和供给
cookie大小收到限制

3.node 使用

//使用cookie必须要使用cookie-parser中间件
var cookieParser = require('cookie-parser');
app.use(cookieParser()); 

express中的cookie: res负责设置cookie, req负责识别cookie。
cookie用来制作记录用户的一些信息,如购买历史、猜你喜欢、访问量等

现在看session

4.session产生

由于cookie明文等一些不足所以产生了session
session依赖cookie,就是利用cookie实现的“会话”,因此当cookie被禁用,session也无法使用。
session比cookie不一样在哪里呢? session会下发一个秘钥(cookie)(加密)客户端每次访问都携带这个密钥,那么服务器发现这个密钥吻合,就能够显示这个用户曾经保存的信息
任何语言中,session的使用,是“机理透明”的,也就是让你感觉不到这事儿和cookie有关

5.session特点和使用

session是加密的

var session = reqiure("express-session");
app.use(session({
        ..一些配置
}));    
app.get("/",function(req,res){
    console.log(req.sission.login);
});    
app.get("/login",function(req,res){
         req.session.login = "1";
});

Session存在于服务器的内存中,如果服务器重启就会丢失session同时需要重新登录

6.cookie和session不同

  • cookie数据存放在客户的浏览器上;session数据放在服务器缓存中。
  • cookie是明文,不安全,别人利用cookie可以被篡改和攻击;而session存放服务器缓存中并且加密的,其他用户看不到。
  • session会在一定时间内保存在服务器上。当用户访问增多,会比较占用你服务器内存,考虑到减轻服务器性能方面,使用cookie。
  • 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie;session的密钥(cookie),可以对应可以对应无限大的数据
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • HTTP cookie(也称为web cookie,网络cookie,浏览器cookie或者简称cookie)是网...
    留七七阅读 18,169评论 2 71
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,127评论 19 139
  • 背景在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cooki...
    时芥蓝阅读 2,395评论 1 17
  • 年末将近,不知不觉已过了二十六个年头,即将迎来第二十七个岁月,时间飞快,不给人以遐想,来不及回望,不让人回味,...
    竹子的故事阅读 507评论 0 2
  • 箭头函数 ES6允许“箭头”来定义函数。 上面语句等同于: 特殊情况: 因为打括号被解释为代码块,�所以如果箭头函...
    aaaaaAndy980阅读 154评论 0 0