session的简介
session的简介
session是另一中记录客户状态的机制,与cookie不同的是 session数据保存在服务器中,而不是保存在客户端浏览器中,。
session的用途
session运行在服务器端,当客户端第一次访问服务器时,可以将客户的登录信息保存在服务器端。
当用户访问站点的其他页面时,可以根据用户的登录状态做出相应的提示,身份验证拦截。
session可以和数据库结合做持久化操作,当服务器挂掉时,不会导致用户信息丢失。
session的工作流程
- 当客户端第一次请求服务器时,服务器会为每个客户端创建一个独享的session对象,用于跟踪用户的状态。
- 同时,为session对象分配一个唯一标识sessionId。
- 为了管理session对象,以sessionId为键,以session对象为值,封装成Map集合。
- 响应客户端时,将sessionId以cookie的形式发送给客户端,存放在客户端浏览器的缓存中。
- 当客户端再次请求服务器时,会将sessionId以cookie请求头的方式发送给服务器,服务器得到sessionId后,从Map集合中,得到session对象,从而跟踪状态。
session的特点
- 同源的页面之间可以共享session数据
- 浏览器关闭时,服务器中保存的session对象也会跟着销毁
- 在第一次调用request.getSession()方法时,创建出session,
- 超时:session超过一定时间(默认30分钟,这个时间可设置)没有人使用,则认为超时,干掉这个session。
- 自杀:也可以明确的调用session的invalidate()方法,手动的杀死session。
- 意外身亡:或者当服务器非正常关闭时,服务器中的session跟着消亡。
session的基本使用
1、安装express-sesssion
npm install express-session --save-prod
2、导入
const session = require('express-session');
3、配置中间件
// 配置中间件
app.use(session({secret: 'keyboard cat',resave: false,saveUninitialized: true,// cookie: { secure: true } // https 协议的请求才会传入 cookie}))
4、设置session数据
app.get('/login', (req, res) => {req.session.userinfo = 'zhangsan';res.send('登录成功');
})
5、获取session数据
app.get('/', (req, res) => {if (req.session.userinfo) {res.send('欢迎回来' + req.session.userinfo)} else {res.send('未登录')}
})
session的配置参数
参数 说明
secret 字符串,作为服务端生成session的签名
name 返回客户端的cookie的名称,默认为content.sid,也可以自己设置
resave 强制重新保存session,即使它没有变化,默认为true,建议设置成false
saveUninitialized 强制将未初始化的session存储,默认是true,建议设置成true
cookie 关于cookie配置信息
rolling 在每次请求时强行设置cookie,这将重置cookie过期时间,默认值为false
session的简介相关推荐
- 巨杉内核笔记(一)| SequoiaDB 会话(session)简介
SequoiaDB 会话(session)简介 会话(Session)的基本概念 容易弄混淆的两个概念是会话与连接. 通俗来讲,会话(Session) 是通信双方从开始通信到通信结束期间的一个上下文( ...
- ASP.NET中Session模型简介
阅读本文章前,需要读者对以下知识有所了解.否则,阅读过程中会在相应的内容上遇到不同程度的问题. 懂得ASP/ASP.NET编程 了解ASP/ASP.NET的Session模型 了解ASP.NET We ...
- http 三种认证方式 Basic Session Token 简介
目录 1. 概述 2. HTTP Basic 认证 3. Session 认证 4. Token 认证 1. 概述 本文简介 HTTP Basic,Session,Token 三种认证方法. Basi ...
- ASP.NET C# Session的简介及用法
Session 一.概述 Session用于存储特定的用户会话所需的信息 . Session对象的引入是为了弥补HTTP协议的不足,HTTP协议是一种无状态的协议. Session中文是"会 ...
- Session 详解
作者: heallven www.ASPCool.com 时间:2004-8-28 阅读本文章之前的准备 阅读本文章前,需要读者对以下知识有所了解.否则,阅读过程中会在相应的内容上遇到不同程 ...
- ASP.NET Session 详解
本文仅代表作者个人观点,正确与否请读者自行研究! 阅读本文章之前的准备 阅读本文章前,需要读者对以下知识有所了解.否则,阅读过程中会在相应的内容上遇到不同程度的问题. 懂得ASP/ASP.NET编程 ...
- 转贴一篇很不错的有关ASP.NET Session的分析文章
ASP.NET Session详解 阅读本文章之前的准备 阅读本文章前,需要读者对以下知识有所了解.否则,阅读过程中会在相应的内容上遇到不同程度的问题. 懂得ASP/ASP.NET编程 了解ASP/A ...
- web.config中的session配置详解
打开某个应用程序的配置文件Web.config后,我们会发现以下这段: < sessionState mode="InProc" stateConnectionString= ...
- [ASP.NET] Session 详解
阅读本文章之前的准备 阅读本文章前,需要读者对以下知识有所了解.否则,阅读过程中会在相应的内容上遇到不同程度的问题. 懂得ASP/ASP.NET编程 了解ASP/ASP.NET ...
最新文章
- Python切片(入门7)
- 结课作业:云计算在物联网中的应用发展
- rms 公式 有效值_怎样求信号中的RMS值?
- (转)Android SharedPreferences的使用
- 代码签名证书Authenticode签名伪造——PE文件的签名伪造与签名验证劫持
- C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码
- HTML Img(Type)
- Java中使用try-with-resource优雅的关闭io流
- 组合,Mixin,类、类对象、实例对象
- 为什么觉得今年工作特别难找?
- 并发编程学习之AQS抽象队列同步器
- 1.4_12 Axure RP 9 for mac 高保真原型图 - 案例11 【动态面板-滚动条1】
- 德马克机械波中shift over to right的意思
- c语言编程一个登陆界面设计,怎么用C语言编写个登陆界面?
- msm8x16 耳机阻抗检测
- 《程序员修炼之道》读书笔记
- C语言编程编制职工档案管理程序,c语言人事档案管理程序
- Linux中使用者身份的切换su和sudo的用法
- 普通本科,一年经验外包直接跳槽阿里?论我是怎么快速晋升的
- 为你的SQLite开发选择一款比较好的工具