Cookies会话管理
何为会话(session)?
在日常生活中,从拨通电话到挂断电话之间的一连串的你问我答的过程就是一个会话。
所以会话可以简单地理解:用户开一个浏览器,点击多个超链接,访问多个Web资源,之后关闭浏览器,这一系列过程就称为一次会话。
会话过程中要解决什么问题?
每个用户在使用浏览器与服务器进行会话的过程中,不可避免地会产生一些数据,服务器要想办法为每个用户保存这些数据。
F:多个用户点击超链接通过一个servlet各自购买了一个商品,服务器应该想办法把每一个用户购买的商品保存在购物车,以便于这些用户点servlet结账时,servlet结账可以得到用户各自购买的商品为用户结账。
Q:这些数据保存在request或servletContext中行不行?
保存会话数据的两种技术:
Cookie:
Cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据进去。如此,web资源处理的就是用户各自的数据了。
Session:
Session是服务器端技术,利用此技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问浏览器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其它web资源时,其它web资源再从用户各自的session中取出数据为用户服务。
A Tip For Cookie Technology
browser
server
servlet1
servlet2
Set-Cokie1: name=WashingMachine
Set-Cokie2 name=WashingMachine
name=WashingMachine
IE cache area
cookie:name=WashingMachine
那么,到底什么是Cookie呢?
Cookie是一种在客户端保持HTTP状态信息的技术,它好比超市的优惠卡。
Cookie是在浏览器访问WEB服务器的某个资源时,由WEB服务器在HTTP响应消息头中附带传送给浏览器的一串数据,WEB服务器传送给各个用户客户端浏览器的数据是可以各不相同的。一旦WEB浏览器保存了某个Cookie,那么它在以后每次访问该WEB服务器时,都应在HTTP请求头中将这个Cookie回传给WEB服务器
WEB服务器通过在HTTP响应消息中增加Set-Cookie响应头字段将Cookie信息发送给浏览器,浏览器则通过在HTTP请求消息中增加Cookie请求头字段将Cookie回传给WEB服务器。