session

session是什么

session是因为cookie的弊端(存放在客户端,容易被客户修改伪造,数据量大也有纯传输问题) 才被做出来的,用session存储在服务器中,这让他的安全性也相对高一点

session是一次浏览器和服务器的交互的会话,session也是一种存储方案

服务器建立一个session,会在客户端建立一个唯一的识别(目的是为了只有这个客户端才能获得这个session

session的标识也会根据浏览器有关系 不同的浏览器的同一用户是不同的标识

session 的运作通过一个 session_id 来进行。session_id 通常是存放在客户端的 cookie 中。客户端通过 session_id 就能跟服务器上的session数据联系起来进行数据的保存和修改。

session 可以存放在

内存 cookie本身 redis 或 memcached 等缓存中 数据库中

存在缓存的方案比较常见,因为存数据库中要经过磁盘读取查询的效率远低于缓存中

node.js中的session

需要安装express-session的包对应的路径下命令行引入

npm install express-session

引入包

session = require("express-session");
express = require("express");
app = express();

session的属性:

name:设置在cookie中,session的字段名称 ,默认为 connect.sid

secret:用来计算hash(哈希值)并且放在客户端中的cookie中

cookie:设置存放 session id 的 cookie 的相关选项

store: session 的存储方式,默认存放在内存中,也可以使用 redis,mongodb 等。express 生态中都有相应模块的支持。

genid: 产生一个新的 session_id 时, 默认使用 uid2 这个 npm 包来生产。

rolling:每个请求都重新设置一个 cookie,默认为 false。

resave:如果为true即使 session 没有被修改,也保存 session 值,默认为 true。

默认的内容

cookie: {path: '/', httpOnly: true, secure: false, maxAge: null
}

配置session

app.use(session({//服务器中保存的唯一用户的信息secret: "zfpx",//设置签名秘钥 内容可以任意填写saveUninitialized: false,//如果原先没有session那么就设置,否则不设置resave: false,//不强制保存,如果session没有被修改不重新保存  如果为true就是相反的cookie: { maxAge: 1000 * 60 * 60 * 24 * 30 },//cookie的有效时间  时间过了session和相应的cookie都失效})
);

session一些基本的东西相关推荐

  1. Cookie 和 Session的区别

    cookies和session这两个东西经常会在面试当中问到,算是比较基础的知识,但是还是需要做一下深入理解. Session Session的概念 Session:在计算机中,尤其是在网络应用当中, ...

  2. php.ini来配置session,php.ini 配置session自动开启

    1.session.save_handler = files 这东西就是设置需要用什么东西存储session,files当然就是文件了.在项目中也可以通过 session_set_save_handl ...

  3. Django框架详细介绍---cookie、session、自定义分页

    1.cookie 在HTTP协议介绍中提到,该协议是无状态的,也就是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的 ...

  4. tomcat架构分析 (Session管理)【转】

    原文地址:https://www.iteye.com/blog/gearever-1546423 Session管理是JavaEE容器比较重要的一部分,在app中也经常会用到.在开发app时,我们只是 ...

  5. 简单理解session

    前言: 今天就来彻底的学一些session是个啥东西,我罗列了几个需要知道的要点: 1.session 是啥? 2.怎么保存的? 3.如何运行? 4.有生命周期吗? 5.关闭浏览器会过期吗? 6.Re ...

  6. Java Web学习(五)session、cookie、token

    一.引言 动态网页兴起后,会话管理变成开发者需要考虑的一个问题,由于HTTP请求是无状态的,为了区分每个用户,此时引入了会话标识(session id)的概念,但是存储机制也会产生不同的问题,下面就详 ...

  7. Tomcat源码分析(九)--Session管理

    本系列转载自 http://blog.csdn.net/haitao111313/article/category/1179996 在明白Tomcat的Session机制之前,先要了解Session, ...

  8. ASP.NET Core中的OWASP Top 10 十大风险-失效的访问控制与Session管理

    本博文翻译自: https://dotnetcoretutorials.com/2017/10/16/owasp-top-10-asp-net-core-broken-authentication-s ...

  9. 鉴权必须了解的5个知识点:cookie,session,token,jwt,单点登录

    从状态说起 [HTTP 无状态] 我们知道,HTTP是无状态的,也就是说,HTTP请求方和响应方间无法维护状态,都是一次性的,它不知道前后的请求都发生了什么 但有的场景下,我们需要维护状态,最常见的, ...

最新文章

  1. sqlserver获取当月、年的第一天和最后一天
  2. micropython串口通信_MicroPython-ESP32串口通信-1Z实验室
  3. 自定义InputFormat案例
  4. 可以进行单元测试么_前端与单元测试
  5. 做 局域网聊天 的人越来越多了
  6. 【华为云技术分享】大数据实践解析(下):Spark的读写流程分析
  7. Docker学习总结(38)——开发环境中使用docker run安装Redis再总结
  8. lua语言和python_[动态语言]python和lua中的三元操作符and-or
  9. linux查找以h结尾的文件,linux中文件查找的常用命令
  10. NWT融资一百万,被老张嘲笑了
  11. GNOME Screencaster 将支持 Miracast P2P 传输
  12. go语言:sync.Once的用法(转)
  13. Win11切换桌面快捷键
  14. 解决鼠标单击变双击问题
  15. 基于android校园新闻APP开发的设计与实现
  16. Ribbon负载均衡原理,源码解读
  17. MySQL高可用架构-MMM环境部署记录
  18. 极客日报:美团拼多多等平台下架“一分钱秒杀”;全球大量网站集体宕机,一度无法访问;Swift内置对并发的支持
  19. Js push整个数组
  20. HI3559算法移植之OpenCV图像拼接、配准和图像融合技术(四)

热门文章

  1. 中专生计算机教案,[定稿]计算机基础教案中专V8.1(全文完整版)
  2. as3 与 java_每天学一点Flash(48) As3.0 与 java 通信(1)
  3. abaqus失效单元删除_abaqus单元删除的一般方法
  4. 人脸识别撞脸名画_艺术与时尚结合的极致——当服装设计遇到名画
  5. 渗透测试入门24之渗透测试参考书、课程、工具、认证
  6. 淘宝网手机客户端开发(一)目录篇
  7. Oracle从零开始5——数据库定义操作
  8. pandas将字符串转换成时间_pandas入门: 时间字符串转换为年月日
  9. 分别求两个整数的最大公约数和最小公倍数。_看不懂辗转相除法求最小公约数?以身相许那种哦!...
  10. Oracle-BPM安装详解