Web服务器采用http协议,而http协议是无状态协议,Http的服务器不能保持与客户端的关联。
一.会话跟踪的定义
从用户进入一个网站浏览到退出这个网站或者关闭浏览器称为一次会话。会话跟踪是指在这个过程中浏览器与服务器的多次保持数据共享的状态的技术。
二.会话跟踪产生的原因
我们都知道Internet通信协议可以分为有状态协议和无状态协议,而我们在WWW上进行的访问HTTP协议是一个无状态协议,这种协议无法将用户的一个请求与另一个关联,这样有怎么能让我们在网络购物的时候添加商品呢?而会话被看成一个与单个用户交互关联的对象,会话跟踪技术可以帮助每个用户在web应用程序中的特定数据,当然它也可以区分不同用户在同一个web应用程序中的数据,这样使得我们的购物车中有自己挑选的商品。
三.会话跟踪的重要性
会话跟踪对当今的电子商务网站显得尤为重要,对于一些能够定制个性化的站点也显得尤为重要。如果在京东买东西的时候,下次我们再次访问京东,展示推荐的商品大部分是跟我们上次买的相似。这样的实现就是我们购买的商品信息被“跟踪”了。
四.实现会话跟踪的机制
- Cookies
- URL重写
- 隐藏式表单域
- session机制
1.Cookies
中文译文小甜饼,由Netscape公司发明,是最常用的跟踪用户会话的方式。Cookies是一种服务器发送给客户端的片段信息,存储在客户端的内存或者硬盘上,最多不超过4k。如果是浏览器,cookie保存在浏览器缓存中,通过名值对保存在浏览器中,可以设置cookie的过期时间属性来指定cookie的有效期。当下次浏览器发出请求时,会搜索其保存的cookie。应用于自动登录、记录浏览过的商品。同时由于只能保存在浏览器的文本中,容易泄露个人信息,有时会禁用掉cookie。
//创建cookie
Cookie ck = new Cookie("名",值);
response.addCookie(ck);
//获取cookie
Cookie[]cook = request.getCookies();
for(Cookie coo:cook){
String name = coo.getName();
String value = coo.getValue();
//设置时间
coo.setMaxAge(60*60);
}
2.URL重写
如果客户端禁用了Cookie,可以通过URL重写地址传递参数,它可以把会话ID添加到URL中(url?名= 值 & 名 = 值)
例如:
http://127.0.0.1:8080/Demo/login.jsp?page=1&maxPage=5
3.隐藏式表单域
是一种最简单的方式,将字段隐藏在HTML表单中,但不在客户端显示。比如在第一张页面中输入用户名和密码登陆,服务器生成响应返回第二张页面。当第二张页面提交时可能仍然需要知道来自第一张页面中的用户名。
那么就可以通过隐藏表单域来实现这一连续的过程。当第一张页面提交后,服务器端作出响应返回第二张页面,此页面中用隐藏域记录了来自登陆时的用户名。通俗说就是当服务器回发给客户端的响应中,就同时把用户名再次回发到客户端,用隐藏域隐藏起来,是不可见的。当第二张页面提交时,此隐藏域中的用户名一并随表单提交。这样服务器就仍然可以判断此用户是否与以前的用户相同。于是,再次处理完结果后继续将响应回发给客户端,且此响应中也仍然包含了用户名,在客户端中仍然用隐藏域将这一信息隐藏。这样就完成了一个连续请求的动作,但是对于用户,这是不可见的。
<form>
<input type="hidden" name="名" value=“值”/>
<input type="hidden" name="名" value=“值”/>
</form>
4.session机制
通过session保存在服务器。通过sessionID传递浏览器与服务器之间与该会话相关的所有信息。当关闭浏览器的时候,会话对象也会被销毁,sessionID会消失。
//获得session
HttpSession session = request.getSession();
//设置数据
session.getAttribute("名",值);
//获取数据
Object obj = session.getAttribute("名");
Cookie和Session的区别:
1.Cookie是保存在浏览器缓存当中的,而session是保存在服务器中的
2.cookie比session不安全,可能会禁用。
3.cookie可以设置有效期,没到有效期之前会一直存在浏览器缓存中,而session关闭浏览器后会被清空。
参考:http://504056383.iteye.com/blog/2163963?utm_source=tuicool
http://blog.youkuaiyun.com/u014345282/article/details/49283433