Session是什么?

Session在网络中称为会话控制,是服务器为了保护用户状态而创建的一个特殊的对象,简而言之,session就是一个对象,用于存储信息。

Session有什么用?

session是存储于服务端的特殊对象,服务端会为每一个浏览器(客户端)创建一个唯一的Session。这个session是服务器端共享,每个浏览器(客户端)独享的。我们可以在session存储数据,实现数据共享。

session的存储形式

session类似于一个Map,里面可以存放多个键值对,是以key-value进行存放的。key必须是一个字符串,value是一个对象。

session的底层机制

session是每一个浏览器所唯一的,是怎么实现的呢?其实,在访问一个网站时,在http请求时往往会带一个cookie,这个名字是jsessionnid,这个jessionnid表示的就是jession的id,这个由服务器创建的,并且唯一。服务器在使用时,会根据jessionnid来进行不同的操作。

当服务端使用session时,首先获取session,这个session通过jsessionid进行获取。

session常用的方法

session和cookie的比较

cookie存储在客户端 ,session存储在服务端

cookie作用于他所表示的path中范围较小。session代表客户端和服务器的一次会话过程,web页面跳转时也可以共享数据,范围是本次会话,客户端关闭也不会消失。会持续到我们设置的session生命周期结束(默认30min)

我们使用session需要cookie的配合。cookie用来携带jsessionnid

cookie存放的数据量较小,session可以存储更多的信息

cookie由于存放在客服端,相对于session更不安全

由于session是存放于服务器的,当有很多客户端访问时,肯定会产生大量的session,这些session会对服务端的性能咋成影响。

总结:   session是一个存储于服务器的特殊对象,通过session可以实现数据共享,session有一个jessionnid,这个是session的唯一标识,使用它可以查找到session。session是会话级别的,对于每一个客户端来说独享它所拥有的session的,我们使用session在页面进行跳转,session由服务器控制。session的创建和销毁都是服务器进行管理的,服务器会为每一个客户端创建一个session。

token

1.token是啥?

token,可以翻译为 令牌,本质上他是一个全局唯一的标识符,用来试别唯一的客户端。但它不像cookie和session一样是一种规范,他像是借鉴了他们的工作原理,进而延伸出来的一种维护用户状态的机制。

2.token解决了什么问题?

token解决了session依赖于单个web服务器的问题。单体应用用户的信息保存在session中,session存在于服务器的内环境中,前前后后用户只是针对一个web服务器,所以没啥问题。但是到了集群环境下, 遇到轮询  登陆了A  下次登陆B 用户体验不好。

我们也完全可以模仿它这种机制:我们可以在用户第一次请求该web服务器时或是用户登录该web服务器时,生成一个全局唯一的token返回给前端存储,同时将该用户信息存到redis中并设置有效期,之后每次请求中都在请求头中带着这个token,服务器端根据这个token到redis中查找对应的用户信息,即得到了我们所说的 "session"。

最新文章

  1. Javascript运用函数计算正方形的面积
  2. 通过JS检测360浏览器
  3. Matlab中的向量
  4. Oracel数据库连接时出现:ORA-12518:监听程序无法分发客户机连
  5. [整理][LaTex]小技巧之——首行缩进
  6. Swift游戏实战-跑酷熊猫 12 与平台的碰撞
  7. jQuery-瀑布流-绝对定位布局(二)(延迟AJAX加载图片)
  8. 集合(Collection,set,list,map)
  9. C语言——strlen()和sizeof的区别
  10. android媒体--图库与API层MediaPlayer的交互
  11. C# 三角形外心和外接圆半径计算方法
  12. Chrome DevTools 调研笔记
  13. 好久好久没写,,百度API逆地址解析以及删除指定marker
  14. java-包装类
  15. hive的使用
  16. 七、UART
  17. !HDU 1574 RP-dp-(重点在状态确定)
  18. [NOI 2016]优秀的拆分
  19. POJ1274 The Perfect Stall[二分图最大匹配 Hungary]【学习笔记】
  20. C#提高-------------------Module的使用

热门文章

  1. sap软件功能介绍及主要功能(模块)有哪些?
  2. class_task
  3. const char* str和const char str[]的区别
  4. Springboot开发微信支付API-V3
  5. 国产低功耗Soc蓝牙语音遥控器芯片HS6621 /OM6621
  6. matlab判断操作
  7. 小程序嵌套h5webview.特定时间跳转小程序页面.调起e证通的人脸核身.成功了返回webview.
  8. Java反射获取方法参数名
  9. EXCEL函数总结
  10. python 文件 写入