session

session

2017年9月2日

12:30

Http是无状态协议,客户每次读取web 页面的时候,服务器都打开新的会话,而且服务器也不会维护客户上下文的信息。

 

session是一种保存上下文信息的机制,它是针对每一个客户的,变量的值保存在服务器端,通过sessionID来区分不同的客户,session 是以cookieURL重写为基础的,默认使用cookie来实现,系统会创建一个名为JSESSIONID 的输出返回给客户端Cookie保存。

 

保存Session ID 的几种方式:

1、采用cookie,这样在交互的过程中,浏览器可以自动的按照规则把这个标识发送给服务器。服务器给每个Session分配一个唯一的JSESSIONID,并通过Cookie发送给客户端,当客户端发送新的请求的时候,将咋Cookie头中携带这个JSESSIONID

2、当cookie 被认为禁止,URL重写,把sessionId加在URL路径的后面。

3、表单隐藏字段。

 

tomcatSESSION的实现,一开始同时使用CookieURL回写机制,如果发现客户端支持Cookie,就继续使用Cookie,停止URL回写,如果发现Cookie被禁用,就一直使用URL回写。

 

Session 何时被删除:

1、程序调用httpSession.invalidate();

2、距离上一次收到客户端发送的sessionId 时间间隔超过了sessionde最大有效时间。

3、服务器进程被停止。

 

关闭浏览器只会使存储在客户端浏览器内存中的session cookie 失效,不会使服务器端的session 对象失效。

 

 

Cookie Session

Session cookie 都是为了用来保存状态信息,都是为了保存客户端状态的机制,它们都是为了解决HTTP无状态的问题而所做的努力。

Session可以用cookie来实现,也可以用URL回写的机制来实现,用Cookie来实现的Session可以认为是对cookie更高级的应用。

两者比较:

1cookie 将状态保存在客户端,Session将状态保存在服务器端。

2Cookie是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器。有在HTTP的协议中定义,Session并没有在HTTP协议中定义

3Session是针对每一个客户的,变量值保存在服务器端,用一个sessionId 来区分是哪个用户session变量。这个值通过后用户的浏览器在访问的时候返回给服务器,当客户禁止cookie时,这个值也可能设置为由get来返回给服务器。

4)安全性;当你访问一个使用session 的站点,同时在自己的机子上建立一个cookie,建议在服务器端使用SESSION机制更安全,因为它不会任意读取客户存储的信息。

 

 

 

session的存储:Session机制是一种服务器端的集中,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值