Session 是一種記錄客戶狀態的機制,不一樣的是 Cookie 保存在客戶端瀏覽器中,而 Session 保存在服務器上的進程中。javascript
客戶端瀏覽器訪問服務器的時候,服務器把客戶端信息以某種形式記錄在服務器上,這就是 Session。客戶端瀏覽器再次訪問時只須要從該 Session 中查找該客戶的狀態就能夠了。java
若是說 Cookie 機制是經過檢查客戶身上的「通行證」來肯定客戶身份的話,那麼 Session 機制就是經過檢查服務器上的「客戶明細表」來確認客戶身份。express
Session 至關於程序在服務器上創建的一份客戶檔案,客戶來訪的時候只須要查詢客戶檔案表就能夠了。跨域
Session 不能跨域瀏覽器
const express = require('express') const path = require('path') const app = express(); const bodyParser = require('body-parser'); const cp = require('cookie-parser'); const session = require('express-session'); app.use(cp()); app.use(session({ secret: '12345',//用來對session數據進行加密的字符串.這個屬性值爲必須指定的屬性 name: 'testapp', //這裏的name值得是cookie的name,默認cookie的name是:connect.sid cookie: {maxAge: 5000 }, //設置maxAge是5000ms,即5s後session和相應的cookie失效過時 resave: false, saveUninitialized: true, })) app.use(bodyParser.urlencoded({extended: false})); app.use(express.static(path.join(__dirname, '/'))); app.get('/setsession', (request, response) => { request.session.user = {username: 'admin'}; response.send('set session success'); }) app.get('/getsession', (request, response) => { response.send(request.session.user); }) app.get('/delsession', (request, response) => { delete reqeust.session.user; response.send(request.session.user); }) app.listen(88)