会话保持 Session和cookie
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"。
会话保持 Session和cookie的更多相关文章
- PHP处理会话函数session和cookie总结
本教程讲解PHP处理会话函数session和cookie总结 PHP处理会话函数包括:session_start.session_register.session_is_registered.sess ...
- PHP......会话控制SESSION与COOKIE
一.SESSION Session:在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web 页之间跳转时,存储在 ...
- PHP中的会话控制—session和cookie(实现数据传值功能)
1.session 登录上一个页面以后,长时间没有操作,刷新页面以后需要重新登录. 特点:(1)session是存储在服务器: (2)session每个人(登陆者)存一份: (3)session ...
- PHP会话控制Session与Cookie
理解会话控制的概念: 阅读过HTTP协议相关资料的同学都会知道HTTP协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议,所谓无状态,指的是不会维护http请求数据,http请求是 ...
- 关于PHP会话:session和cookie
会话处理解决什么问题 HTTP(超文本传输协议)定义了通过万维网(WWW)传输文本.图形.视频和全部其它的数据的规则.HTTP是一种无状态协议,每次请求的处理,都与之前和之后的请求无关. 会话处理是这 ...
- 【荐】PHP Session和Cookie,Session阻塞,Session垃圾回收,Redis共享Session,不推荐Memcached保存Session
什么是 Session 在 web 应用开发中,Session 被称为会话.主要被用于保存某个访问者的数据. 由于 HTTP 无状态的特点,服务端是不会记住客户端的,对服务端来说,每一个请求都是全新的 ...
- 会话控制:session与cookie
我们在浏览网站时,访问的每一个web页面都需要使用"http协议"实现.而HTTP协议是无状态协议,就是说HTTP协议没有一个内建机制来维护两个事务之间的状态.当一个用户请求一个页 ...
- 会话控制:SESSION,COOKIE
1.http协议: HTTP—超文本传输协议,在TCP协议(长连接.像一个硬件)基础上; 特点:短连接,无状态协议,没法记录本次连接的状态;适用于静态页面的访问,对于后期某些页面是需要浏览器预知客户信 ...
- 会话跟踪session cookie
会话跟踪 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在 ...
- Servlet基础知识(三)—— 会话机制Session,Session和Cookie的异同
Servlet会话机制: Http是一种无状态协议,它是无记忆的.也就是说,服务器不会保存用户的任何信息,当同一用户再次去访问时,服务器是不认识你的,它还是会建立新的连接. 但有时候我们需要服务器保留 ...
随机推荐
- 【PS】PS如何删除图片中的白字
[PS]PS如何删除图片中的白字 首先打开ps,然后导入要操作的图片,接着选择左边工具栏中的魔棒工具. 对所要操作的文字进行框选,可以按住shift键进行连续操作 点击上方工具栏中的选择 | 修改 | ...
- webpack5用url-loader(file-loader)处理图片和img-loader压缩图片
webpack-cli 4.0的版本和 webpack-dev-server 3.11.0的版本不兼容,只能用webpack@5.0 + webpack-cli@3.3.12 + webpack-de ...
- 【服务器数据恢复】RAID6数据恢复案例
服务器数据恢复环境:一台Web服务器中有一组由8块磁盘组建的raid6磁盘阵列,用来运行数据库和存储普通办公文件. 服务器故障:服务器raid6磁盘阵列中有两块硬盘离线,但是管理员没有注意到这种情况, ...
- 【Java学习Day05】LDEA的安装和使用
LDEA安装 进入LDEA所有版本下载地址,建议下载LDEA2018 3.6版本 安装好LDEA后双击打开LDEA点击Nest,选择合适的文件路径,个人不建议放在C盘 选择好合适的文件路径后点击Nex ...
- 由Restart()想到的
官方文档: Application.Restart Method (System.Windows.Forms) | Microsoft Docs 目录 Restart 探索 结论 启示 Restart ...
- python37
Python 循环嵌套 Python 语言允许在一个循环体里面嵌入另一个循环. Python for 循环嵌套语法: for iterating_var in sequence: for iterat ...
- js单线程工作
http://www.ruanyifeng.com/blog/2014/10/event-loop.html#comment-390185
- Element--->>>最新骨架屏Skeleton使用
首先,Element在最近的一次更新中(时间:2021-06-29) 新增了Skeleton骨架屏组件.Empty空状态组件. 那么在使用其自带组件Skeleton时,应将按照如下步骤使用: Ⅰ:如果 ...
- BIP弹框内容显示的隐藏
viewModel.on("customInit", function (data) { // 关闭或取消关原因详情--页面初始化 viewMode ...
- VS code 安装后gdb调试无法显示STL内容的问题
bar {...} std::_Vector_base<TSample<MyTraits>, std::allocator<TSample<MyTraits> &g ...