四种会话跟踪技术

会话跟踪是一种灵活、轻便的机制,它使Web上的状态编程变为可能。
HTTP是一种无状态协议,每当用户发出请求时,服务器就会做出响应,客户端与服务器之间的联系是离散的、非连续的。
当用户在同一网站的多个页面之间转换时,根本无法确定是否是同一个客户,会话跟踪技术就可以解决这个问题。
当一个客户在多个页面间切换时,服务器会保存该用户的信息。
有四种方法可以实现会话跟踪技术:URL重写、隐藏表单域、Cookie、Session。

1).隐藏表单域:<input type="hidden">,非常适合步需要大量数据存储的会话应用。
2).URL 重写:URL 可以在后面附加参数,和服务器的请求一起发送,这些参数为名字/值对。 见http://blog.csdn.net/xh16319/article/details/8464055
3).Cookie:一个 Cookie 是一个小的,已命名数据元素。服务器使用 SET-Cookie 头标将它作为 HTTP
响应的一部分传送到客户端,客户端被请求保存 Cookie 值,在对同一服务器的后续请求使用一个
Cookie 头标将之返回到服务器。与其它技术比较,Cookie 的一个优点是在浏览器会话结束后,甚至
在客户端计算机重启后它仍可以保留其值。 见:http://blog.csdn.net/xh16319/article/details/8464319
4).Session:使用 setAttribute(String str,Object obj)方法将对象捆绑到一个会话

实现URL重写

URL重写在客户端浏览器不支持Cookie(下章介绍)的情况下使用的,它是客户端浏览器请求服务器时,URL地址后面加上类似于 “SESSIONID=***”形式的参数,服务器端通过获取SESSIONID关键字来获取会话值。

在程序第一次访问服务器端时,服务端并不能确认客户端浏览器是否支持Cookie。因此,当服务器第一次发出请求时,服务端会默认采用URL重写,也就是将SESSIONID写到URL地址中传递。

核心代码:String SessionId=request.getRequestedSessionId();

当客户端发送请求后,服务器会根据提交给客户端浏览器的信息自动检查客户端是否启用了Cookie,如果启用,将不再进行URL重写。如果没有,则继续使用URL重写。

通过response对象的encodeURL(String url)方法可以进行URL重写。

public String encodeURL(String url);
对包含SessionID的URL进行编码。如果不需要编码,就直接返回这个URL。
Servlet引擎必须提供URL编码方法,因为在有些情况下,我们将不得不重写URL。
例如,在响应对应的请求中包含一个有效的Session,但是这个Session不能被非URL的(例如Cookie)的手段来维持。
所以所有提供给Servlet的URL都应通过这个方法运行,这样才能确保会话跟踪能够在所有浏览器中正常运行。 

隐藏域和URL重写有着共同的优点:
它们在Cookie被禁用或者根本不支持的情况下依旧能够工作。
缺点:
所有页面必须是表单提交之后的结果,还有涉及许多冗长的处理工作。

时间: 2025-01-03 17:28:40

四种会话跟踪技术的相关文章

四种会话跟踪技术,JSP的四种范围

这两个问题在网上搜答案是一样的,但是我的宝典里标明这是两个问题,有不同的答案,所以在这里注释一下. 四种会话跟踪技术 cookie,url重写,session,隐藏域 Cookie:服务器在一个应答首部传递给浏览器的名称/值对.浏览器保存的时间由cookie的过期时间属性来指定.当浏览器向某个服务器发送一个请求时,它会检查其保存的cookie,并在请求首部中包含从同一台服务器上接收到的所有cookie. 首次都是通过URL传递的,即在URL后跟一个ID标识.然后会判断客户端是否接受cookie,

四种会话跟踪方法

前段时间看到web中会话跟踪技术,经过收集并整理将学习结果记录在此. 1.什么是会话 客户端打开与服务器的连接发出请求到服务器响应客户端请求的全过程称之为会话 . 2.什么是会话跟踪 对同一个用户对服务器的连续的请求和接受响应的监视 . 3.为什么需要会话跟踪 浏览器与服务器之间的通信是通过HTTP协议进行通信的,而HTTP协议是"无状态"的协议,它不能保存客户的信息,即一次响应完成之后连接就断开了,下一次的请求需要重新连接,这样就需要判断是否是同一个用户,所以才应会话跟踪技术来实现这

Web开发中,用到的4种会话跟踪技术

会话跟踪:主要解决HTTP的无状态问题,即: 当用户发出请求时,服务器就会做出响应,客户端与服务器之间的联系是离散的.非连续的.当用户在同一网站的多个页面之间转换时,根本无法确定是否是同一个客户,会话跟踪技术就可以解决这个问题.当一个客户在多个页面间切换时,服务器会保存该用户的信息. 1.Cookie: 可以使用 cookie 存储购物会话的 ID:在后续连接中,取出当前的会话 ID,并使用这个 ID 从服务器上的查找表(lookup table)中提取出会话的相关信息. 以这种方式使用 coo

java中会话跟踪技术

1.什么是会话跟踪技术? 会话跟踪技术,是针对无状态连接中,跟踪用户关键操作的技术. 具体应用场景,是淘宝网中用户登录后购买商品,但是服务器并不能将用户和商品对应起来:因此,需要通过会话跟踪技术来实现追踪定位. 2.java中有四种会话跟踪技术: cookie,session,url重写,隐藏域. cookie: 服务器创建保存于浏览器端,下次用户再访问该站点服务器的时候,保存在用户机器上的cookie信息就被送回给服务器端.一般cookie大小不大于4KB,且用户的敏感信息和账户密码不应该保存

HTML5入门教程 :Cookie会话跟踪技术~

1. Cookie会话跟踪技术介绍 会话跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,可以在客户端保存临时数据. Cookie 技术诞生以来,它就成了广大网络用户和 Web 开发人员争论的一个焦点.有一些网络用户,甚至包括一些资深的 Web 专家也对它的产生和推广感到不满,这并不是因为 Cookie 技术的功能太弱或其他技术性能上的原因,而是因为 Cookie 的使用对网络用户的隐私构成了危害

会话跟踪技术

会话跟踪是一种灵活.轻便的机制,它使Web上的状态编程变为可能.HTTP是一种无状态协议,每当用户发出请求时,服务器就会做出响应,客户端与服务器之间的联系是离散的.非连续的.当用户在同一网站的多个页面之间转换时,根本无法确定是否是同一个客户,会话跟踪技术就可以解决这个问题.当一个客户在多个页面间切换时,服务器会保存该用户的信息.有四种方法可以实现会话跟踪技术:URL重写.隐藏表单域.Cookie.Session.1).隐藏表单域:<input type="hidden">,

Cookie&amp;Session会话跟踪技术

今日内容学习目标 可以响应给浏览器Cookie信息[response.addCookie()] 可以接受浏览器Cookie信息[request.getCookies()] [创建cookie,设置path和Age] 理解cookie的执行原理(重要) 可以对session的作用域数据进行操作:存放,获得,移除 理解session的执行原理(重要) 一,记录用户的上一次访问时间 当用户访问某些WEB应用时,经常会显示出上一次的访问时间.例如QQ登录成功后,会显示上一次的登录时间.通过本案例读者将学

04-cookies 会话跟踪技术

1.会话跟踪技术 1.Http协议的无状态保存 会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应 2 .会话路径技术使用Cookie或session完成 我们知道HTTP协议是无状态协议,也就是说每个请求都是独立的!无法记录前一次请求的状态. 但HTTP协议中可以使用Cookie来完成会话跟踪!在Web开发中,使用session来完成会话跟踪,session底层依赖Cookie技术. 2.cookie简介 1.什么叫Cookie Cookie翻译成中文是小甜点,小饼干

小记常见的会话跟踪技术

常见的会话跟踪技术 使用Cookie 向客户端发送Cookie Cookie c =new Cookie("name","value"); //创建Cookie c.setMaxAge(60*60*24); //设置最大时效,此处设置的最大时效为一天 response.addCookie(c); //把Cookie放入到HTTP响应中 从客户端读取Cookie String name ="name"; Cookie[]cookies =reque