前一段项目完成一直在实施工作,现在又空闲时间,进行回顾一下java web的知识。
在java web 中“用户会话”是在客户端和服务端之间的多次请求构成的一种的“对话”。
在客户端保存会话状态:其实质把会话状态保存在客户端,就是把会话串行化,并且把他放在html视图页面,传递会客户端。
其优点如下:
(1)相对来说容易
(2)保存状态比较少时效果比较好。
(3)当需要在多台物理服务器上实现负载均衡时,使用客户端保存会话状态的策略,也不需要在服务器之间复制会话状态。
实现服务器段保存会话状态的集中常见策略:
(1)HTML隐藏域字段
(2) HTTP COokie 使用
(3)将会话一查询字符串格式放入url中
针对html隐藏字段:
优点:容易实现,在安全性行比较低且数据量比较小的情况下,效果比较好
缺点:数据多时,对系统性能产生负面影响比较大。(在请求和响应中都要通过网络反复传输)
数据信息只能以字符串格式保存在html隐藏域字段中。
客户端用户,可以通过查看源代码,直接查看到暴露在html中信息。
针对HTTP COOKIE :
优点:同html隐藏字段优点
缺点: 数据多时,对系统性能产生负面影响比较大。(在请求和响应中都要通过网络反复传输)
数据信息只能以字符串格式保存在COokie字段中。
客户端用户使用的浏览器不同可能存储的数据量大小不等。
针对会话状态查询字符串话放在url:
优点:容易实现,在安全性行比较低且数据量比较小的情况下,效果比较好
缺点: 数据信息的长度有可能有限制,如get请求方式等
数据信息只能以字符串格式保存在查询字符串中
在客户端保存会话状态时的安全问题:
当客户端放在客户端时,必须要考虑数据的安全性,如果不想暴露数据给客户端,可以适当的加密来保护数据。