欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

WEB安全(六)Session的使用、Session与Cookie的区别

时间:2023-06-21

Session是会话,是用在服务端记录用户信息的数据结构。

Session的使用 1、获取Session对象

HttpSession s = request.getSession(boolean flag);

注:HttpSession是一个接口。

当flag为true时,根据请求中的SessionId查找对应Session对象,不存在则返回新建Session对象。

当flag为false时,同样根据请求中的SessionId查找对应Session对象,不存在则返回null。

2、常用方法

绑定数据:

session.setAttribute(String name,Object obj);

根据绑定名获得绑定值:

Object session.getAttribute(String name);

解除绑定:

session.removeAttribute(String name);

3、Session的自动销毁

Tomcat 服务器默认的Session超时时间是30分钟

可以利用web.xml设置超时时间单位是分钟,设置为0表示不销毁。

20

Session 与 cookie 的区别

解决HTTP协议自身无状态的方式有cookie和session。二者都能记录状态,前者是将状态数据保存在客户端,后者则保存在服务端。

Session的工作原理

session的基本原理是服务端为每一个session维护一份会话信息数据,而客户端和服务端依靠一个全局唯一的标识来访问会话信息数据。用户访问web应用时,服务端程序决定何时创建session,创建session可以概括为三个步骤:

1、生成全局唯一标识符(sessionid);

2、开辟数据存储空间。一般会在内存中创建相应的数据结构,但这种情况下,系统一旦掉电,所有的会话数据就会丢失,如果是电子商务网站,这种事故会造成严重的后果。不过也可以写到文件里甚至存储在数据库中,这样虽然会增加I/O开销,但session可以实现某种程度的持久化,而且更有利于session的共享;

3、将session的全局唯一标示符发送给客户端。

cookie的工作原理

无论使用何种服务端技术,只要发送回的HTTP响应中包含如下形式的头,则视为服务器要求设置一个cookie:

Set-cookie:name=name;expires=date;path=path;domain=domain

支持cookie的浏览器都会对此作出反应,即创建cookie文件并保存(也可能是内存cookie),用户以后在每次发出请求时,浏览器都要判断当前所有的cookie中有没有没失效(根据expires属性判断)并且匹配了path属性的cookie信息,如果有的话,会以下面的形式加入到请求头中发回服务端:

cookie: name=“zj”; Path="/linkage"

服务端的动态脚本会对其进行分析,并做出相应的处理,当然也可以选择直接忽略。

需要注意的是,出于安全性的考虑,cookie可以被浏览器禁用。

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。