cookie和session同与异

口试和工作中有时刻遇到cookie和session的同异,如今小结以下:
首先看cookie
cookie增编削查:http://www.w3school.com.cn/js…

1.cookie发生

辨认用户:用来客户端和服务器端举行会话

  • HTTP是无状况协定,这就回涌现这类征象:当你登录一个页面,然后转到登录网站的另一个页面,服务器没法认识到。或者说两次的接见,服务器不能认识到是同一个客户端的接见,这就让你反复登录,所以发生了cookie。
  • cookie:第一次接见一个服务器,不照顾cookie,这时刻服务器在相应(response)下行HTTP报文中,敕令浏览器照顾cookie信息;浏览器再接见同一个域的时刻,将把cookie信息照顾到要求(request)上行HTTP要求中,从而完成了HTTP模仿有了状况。
  • 每一个特定域名下面的cookie数目是有限定的,fixfox是50个,Opera是30个,chrome和safari是没有限定的

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";
});
都是req对象

Session存在于服务器的内存中,假如服务器重启就会丧失session同时须要从新登录

6.cookie和session差别

  1. cookie数据寄存在客户的浏览器上;session数据放在服务器缓存中。
  2. cookie是明文,不安全,他人应用cookie可以被改动和进击;而session寄存服务器缓存中而且加密的,其他用户看不到。
  3. session会在肯定时间内保留在服务器上。当用户接见增加,会比较占用你服务器内存,考虑到减轻服务器机能方面,运用cookie。

4.单个cookie保留的数据不能凌驾4K,假如cookie的内容凌驾4K的话,那末挪用的时刻就会返回一个空的字符串;session的密钥(cookie),可以对应无限大的数据

    原文作者:云深不知处
    原文地址: https://segmentfault.com/a/1190000010139093
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞