面試和工做中有時候碰到cookie和session的同異,如今小結以下:
首先看cookie
cookie增刪改查:http://www.w3school.com.cn/js...node
識別用戶:用來客戶端和服務器端進行會話面試
//使用cookie必需要使用cookie-parser中間件 var cookieParser = require('cookie-parser'); app.use(cookieParser()); express中的cookie: res負責設置cookie, req負責識別cookie。 cookie用來製做記錄用戶的一些信息,如購買歷史、猜你喜歡、訪問量等
如今看sessionchrome
因爲cookie明文等一些不足因此產生了session
session依賴cookie,就是利用cookie,實現的「會話」,所以當cookie被禁用,session也沒法使用。
session比cookie不同在哪裏呢? session會下發一個祕鑰(cookie)(亂碼),客戶端每次訪問都攜帶這個祕鑰,那麼服務器若是發現這個祕鑰吻合,就可以顯示這個用戶曾經保存的信息。
任何語言中,session的使用,是「機理透明」的,也就是讓你感受不到這事兒和cookie有關express
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同時須要從新登陸緩存
4.單個cookie保存的數據不能超過4K,若是cookie的內容超過4K的話,那麼調用的時候就會返回一個空的字符串;session的密鑰(cookie),能夠對應無限大的數據安全