2、什么是session?
session
什么是Session?Session什么时候产生?
Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。
简单来说,客户端浏览服务端的时候,服务端把客户端信息以某种形式记录在服务器上,这种记录就是Session。所以Session是保存在服务器上的。
为什么要使用Session?什么是SessionID?
因为很多第三方可以获取到这个Cookie,服务器无法判断Cookie是不是真实用户发送的,所以Cookie可以伪造,伪造Cookie实现登录进行一些HTTP请求。如果从安全性上来讲,Session比Cookie安全性稍微高一些,我们先弄清一点,SessionID是从哪里来的,sessionID是如何使用的:客户端第一次请求Session对象时候,服务器会为客户端创建一个session,并将通过特殊算法算出一个session的ID,下次请求资源时(Session未过期),浏览器会将sessionID(实质是cookie)放置到请求头中,服务器接收到请求后就得到该请求的SessionID,服务器找到该id的session返还给请求者使用。一个会话只能有一个session对象,对session来说是只看sessionID。按理来说,只要知道SessionID就可以进行伪登录。但是你想得到这个sessionID,得知道别人什么时候进行登录。同时sessionID是加密的,session过期时sessionID也会失效,想在短时间内功破加了密的sessionID有点难度。
Session的生命周期?
根据需求设定,一般来说,半小时。举个例子,你登录一个服务器,服务器返回给你一个sessionID,登录成功之后的半小时之内没有对该服务器进行任何HTTP请求,半小时后你进行一次HTTP请求,会提示你重新登录。这就是我们常说的Session已失效,也就是说就算的session_id还存在,但是session照样会结束自己的生命周期。
最新文章
- [APUE]UNIX进程的环境(上)
- 【WP8.1】类似“IT之家” 自定义消息 的实现
- Linux启用和配置Java
- dev TreeList拖拽
- 没有QQ的日子
- 父窗口window.showModalDialog传值 子窗口window.returnValue返回值
- C# 读写excel 用于导入数据库 批量导入导出excel
- OpenLayers中地图缩放级别的设置方法
- ios如何生成crash报告
- [办公自动化]利用Acrobat完成问卷调查或者考试卷
- mybatis动态sql中foreach标签的使用
- CSS其他
- A Tour of Go Images
- 清空DNS缓存
- listview——显示窗体
- uva10635 LCS映射转LIS
- 什么是IAT重定向
- vs2015 c# winfrom应用程序打包成64位
- 用汇编语言角度来理解C语言的一些问题
- Oracle的DQL