session 的工作原理?
session 的工作原理?
1、什么是 session
session 是浏览器和服务器会话过程中,服务器分配的一块储存空间。服务器默认为浏览器在cookie中设置 sessionid,浏览器在向服务器请求过程中传输 cookie 包含 sessionid ,服务器根据 sessionid 获取出会话中存储的信息。
由于 http 协议是无状态的,即 http 请求一次连接一次,数据传输完毕,连接就断开了,下次访问需要重新连接。
通过 cookie 中的 sessionid 字段和服务器端的 session 关联,可以确定会话的身份信息。
2、session 比 cookie 更安全
用户信息可以通过加密存储到 cookie,但是这样做的安全性很差,浏览器的 cookie 的容易被其他程序获取和篡改。使用 session 的意义在于 session 存储在服务器,相对安全性更高。
3、session 的生命周期
- 创建
浏览器访问服务器的 servlet(jsp)时,服务器会自动创建 session,并把 sessionid 通过 cookie 返回到浏览器。
servlet 规范中,通过 request.getSession(true) 可以强制创建 session。
- 销毁
服务器会默认给 session 一个过期时间,即从该 session 的会话在有效时间内没有再被访问就会被设置过超时,需要重新建立会话。
如 tomcat 的默认会话超时时间为30分钟。
会话超时时间是可以通过配置文件设置,如修改 web.xml 、server.xml 文件
1、web.xml 文件<session-config><session-timeout>30</session-timeout>
</session-config>2、server.xml 文件<Context path="/demo" docBase="/demo" defaultSessionTimeOut="3600"
isWARExpanded="true" isWARValidated="false" isInvokerEnabled="true" isWorkDirPersistent="false"/>
调用 servlet api 手动设置 session 超时时间
request.getSession().setMaxInactiveInterval(60 * 30);//session 30分钟失效
调用 servlet api 手动销毁 session
request.getSession().invalidate();
4、注意事项
- 如果浏览器禁用 cookie,默认情况下 session 无法生效。可以通过url重载携带 sessionid 参数、把 sessionid 设置为 http 协议 header 设为其他自定义字段中,请求中始终携带。
- 当用户量很大、 session 的失效时间很长,需要注意 session 的查找和存储对服务器性能的影响。
- web 容器可以设置 session 的钝化(从内存持久化到文件) 和 活化(从文件读到内存),提高性能。
【Java面试题与答案】整理推荐
- 基础与语法
- 集合
- 网络编程
- 并发编程
- Web
- 安全
- 设计模式
- 框架
- 算法与数据结构
- 异常
- 文件解析与生成
- Linux
- MySQL
- Oracle
- Redis
- Dubbo
session 的工作原理?相关推荐
- java session原理_java web开发—session的工作原理总结
session的工作原理总结 一.什么是session session是一次浏览器和服务器交互的会话,在jsp中,作为一个内置对象存在.我的理解,就是当用户打开网页时,程序会在浏览器中开辟一段空间来存 ...
- session的工作原理[择]
session的工作原理 一.术语session 在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是 ...
- java中session的作用_java中session的工作原理是什么?和Cookies有何区别?
现在大家学习的东西和以前大不相同了,越来越多的人倾向于去学习高新技术以获得更好的发展.java是很多人的第一选择.java中的知识还是很多的,今天就来为大家介绍一下. 首先来说一下java中sessi ...
- HTTP Session 的工作原理以及几个思维扩展
大家都知道,HTTP 协议本身是无状态的,Session 的出现解决了这个问题,也被大多数 Web 端采用. 但它背后的实现原理你是否有兴趣了解呢,以及在它基础上的思维发散,和你聊聊. 无状态的 HT ...
- Session的工作原理
session是服务器端的一个集合,可以存储任何东西.session最重要的特性,是可以识别客户. 1.Session的工作原理 当我们的Servlet需要使用Session时,执行下面的代码 Htt ...
- 会话(cookie的使用,路径和Session的工作原理,使用)
1.状态管理----Cookie 1.1 为什么需要状态管理 HTTP协议是无状态的,不能保存每次提交的信息,即当服务器返回与请求相对应的应答之后,这次事务的所有信息就丢掉了. 如果用户发来一个新的请 ...
- PHP中session的工作原理
一直在使用session存储数据,一直没有好好总结一下session的使用方式以及其工作原理 今天在这里做一下梳理 这里的介绍主要是基于php语言,其他的语言操作可能会有差别,但基本的原理不变. 1. ...
- session的工作原理【转】
一直在使用session存储数据,一直没有好好总结一下session的使用方式以及其工作原理,今天在这里做一下梳理. 这里的介绍主要是基于php语言,其他的语言操作可能会有差别,但基本的原理不变. 1 ...
- PHP session的工作原理
PHP SESSION原理 我们知道,session是在服务器端保持用户会话数据的一种方法,对应的cookie是在客户端保持用户数据.HTTP协议是一种无状态协议,服务器响应完之后就失去了与浏览器的联 ...
- session 的工作原理以及使用细节和url编码
/**********************************************模拟页面************************************************* ...
最新文章
- 生成学习算法Generative Learning algorithms
- NodeJS开发环境配置
- Struts2_2_第一Struts2应用
- LeetCode 2065. 最大化一张图中的路径价值(DFS)
- Android 系统(230)---OTA 软件包工具
- tasker运行java_Tasker 打开桌面快捷方式(以微信公众号为例)[No Root]
- 网管学习日记-STP
- 二阶高通有源滤波器设计与仿真测试
- Python鼠标拖动曲线(matplotlib)
- ansiblea基本使用
- v-for on stateful component root element because it renders multiple elements
- APP微信支付的后台实现
- 英语学习经验分享(四六级、竞赛、口语)
- JavaWeb专栏之(一):什么是JavaWeb?
- python实数绝对值的计算循环操作_Python复数属性和方法运算操作示例
- BBQ 回退使用实例
- GSM Communication on EBox4300--(1)
- Arduino Uno R3 communication
- 国家计算机网络工程师考试,计算机四级网络工程师考试内容了解一下!
- 用python的opencv库打开ip摄像头
热门文章
- 小程序订阅消息(服务通知)实现 wx.requestSubscribeMessage
- oracle优化技巧
- MySQL 8.0.19安装教程(windows 64位)
- Android聊天软件的开发
- 物联数采网关在电力能效管理系统中的应用
- 六轴传感器MPU6050
- 解决扫码枪中文输入法冲突问题
- 《Efficient Android Threading》Chapter 3---Threads on Android (Android中的线程)
- c语言对fpga编程,利用C语言对FPGA计算解决方案进行编程方法介绍
- MacBook快捷键