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的更多相关文章

  1. PHP处理会话函数session和cookie总结

    本教程讲解PHP处理会话函数session和cookie总结 PHP处理会话函数包括:session_start.session_register.session_is_registered.sess ...

  2. PHP......会话控制SESSION与COOKIE

    一.SESSION Session:在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web 页之间跳转时,存储在 ...

  3. PHP中的会话控制—session和cookie(实现数据传值功能)

    1.session  登录上一个页面以后,长时间没有操作,刷新页面以后需要重新登录. 特点:(1)session是存储在服务器:   (2)session每个人(登陆者)存一份: (3)session ...

  4. PHP会话控制Session与Cookie

    理解会话控制的概念: 阅读过HTTP协议相关资料的同学都会知道HTTP协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议,所谓无状态,指的是不会维护http请求数据,http请求是 ...

  5. 关于PHP会话:session和cookie

    会话处理解决什么问题 HTTP(超文本传输协议)定义了通过万维网(WWW)传输文本.图形.视频和全部其它的数据的规则.HTTP是一种无状态协议,每次请求的处理,都与之前和之后的请求无关. 会话处理是这 ...

  6. 【荐】PHP Session和Cookie,Session阻塞,Session垃圾回收,Redis共享Session,不推荐Memcached保存Session

    什么是 Session 在 web 应用开发中,Session 被称为会话.主要被用于保存某个访问者的数据. 由于 HTTP 无状态的特点,服务端是不会记住客户端的,对服务端来说,每一个请求都是全新的 ...

  7. 会话控制:session与cookie

    我们在浏览网站时,访问的每一个web页面都需要使用"http协议"实现.而HTTP协议是无状态协议,就是说HTTP协议没有一个内建机制来维护两个事务之间的状态.当一个用户请求一个页 ...

  8. 会话控制:SESSION,COOKIE

    1.http协议: HTTP—超文本传输协议,在TCP协议(长连接.像一个硬件)基础上; 特点:短连接,无状态协议,没法记录本次连接的状态;适用于静态页面的访问,对于后期某些页面是需要浏览器预知客户信 ...

  9. 会话跟踪session cookie

    会话跟踪 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在 ...

  10. Servlet基础知识(三)—— 会话机制Session,Session和Cookie的异同

    Servlet会话机制: Http是一种无状态协议,它是无记忆的.也就是说,服务器不会保存用户的任何信息,当同一用户再次去访问时,服务器是不认识你的,它还是会建立新的连接. 但有时候我们需要服务器保留 ...

随机推荐

  1. 达芬奇18.1.2安装包下载+软件详细破解安装教程(Win&Mac)

    DaVinci Resolve v18.1.2是一款在同一个软件工具中,将剪辑.调色.视觉特效.动态图形和音频后期制作融于一身的解决方案!它采用美观新颖的界面设计,易学易用,能让新手用户快速上手操作, ...

  2. nodejs配合jwt

    使用npm下载包: npm i jsonwebtoken --save 引入此包: const jsonwebtoken =require('jsonwebtoken'); JWT的组成: JWT由三 ...

  3. [vsCode]Visual Studio Code左侧导航栏图标丢失

    人在摸鱼,闲着没事看了看没用过的git窗口,然后右键把导航栏快捷图标关了 打开设置(Ctrl+,),搜索sidebar 编辑 settings.json { "window.zoomLeve ...

  4. RHEL8注册

    安装RHEL后,因为是商用系统,YUM软件仓库是不能使用的,需要注册后才可以使用.个人用户可以去红帽官网申请开发者账户. https://developers.redhat.com/ 有了开发者账户后 ...

  5. 云计算——实验3:AWS实验-EC2操作

    本次实验属于验证型实验,通过本次实验学生将掌握以下内容: 1.EC2免费实例创建方法: 2.EC2实例SSH连接以及命令使用. 我使用阿里云进行注册和远程连接,aws需要使用信用卡,国内的比较省事. ...

  6. win/ubuntu/centos 安装后台监控工具btop

    之前linux平台进行后台监控一直是简单的看top,但界面太难看而且需要记的缩写太多而且不直观(对于我来说),后面有尝试替换htop,扩展支持了鼠标操作以及直观监控,但是界面还是难看,今天查找了一下发 ...

  7. jar打包exe选型

    网上一搜有篇文章写了9中不同工具方法,最后使用launch4j,其实就一点开源免费. launch4j>bsd3协议(可免费商用),像exe4j需要license. 经过摸索终于搞定一键启动并且 ...

  8. vue html转pdf并打印

    //文件名随便取一个如:htmlToPdf.js // 导出页面为PDF格式 import html2Canvas from 'html2canvas' import JsPDF from 'jspd ...

  9. Verilog仿真遇到的问题

    1.Vivado 15.4仿真时编译没有报错,但是仿真不成功,逻辑很简单,full为高电平时,rd_en要拉高,但全程没有拉高! 检查语法发现语句" else if( empty == 'b ...

  10. 大规模并行处理器编程实战_原书第2版_pdf

    链接:https://pan.baidu.com/s/1c8ez8dCTz5bUQchwhXAF7w 提取码:tc1f