web应用中典型的4种典型的会话跟踪方法

HTTP请求/响应事务的一个基本特征是无状态
由于Web服务器在请求之间不会记住客户端,因此保持客户端与服务器之间的会话状态的持续性的唯一方式是客户端跟踪会话。
4种典型的会话跟踪方法。

使用Cookie
URL重写
隐藏的表单域
session
session大家都很熟悉了
在这里就述说其他三种吧

使用Cookie


Cookie是当客户浏览某网站时,由Web服务器置于硬盘上的一个非常小的文本文件,它可以记录客户的用户ID、密码、浏览过的网页、停留的时间等信息。
当客户再次来到该网站时,网站通过读取Cookie,得知客户的相关信息,就可以做出相应的动作
如在页面显示欢迎的标语,或者让客户不用输入ID、密码就直接登录等。
Cookie只有在用户允许其浏览器支持Cookie时才可以实现会话跟踪功能。在实际中,很多用户出于个人隐私和安全的考虑而禁用Cookie。


URL重写

在HTTP中,Get方法可以实现数据由客户端到服务器端的传送,URL重写是利用Get函数,在URL的尾部添加一些额外的参数来实现会话跟踪。
在实际应用中,需要为每一个用户指定一个唯一的标识,为了把会话ID正确地嵌入到发送给用户的URL中,可以调用HttpServletResponse.encodeURL()方法将URL转化成正确的字符串。

缺点:
必须对所有指向本Web站点的URL进行编码。
所有页面都必须动态生成。
不能使用预先记录下来的URL进行访问,或者从其他的网站链接进行访问。
用户ID及登录密码等重要信息可能以参数的形式暴露在URL上,造成安全隐患。
大部分的URL的长度有限制,不能传送大量的数据。

隐藏的表单域

隐藏表单域是利用HTML中的隐藏域,在网页表单内隐藏某些客户端的信息。这些信息会随客户端的请求信息一起传送给服务器,服务器通过获取的这些信息来进行会话跟踪。
隐藏域的HTML标签如下:
<input type="hidden" name="隐藏域名称" value="默认值">

这些识别信息是隐藏的,所以不会在客户端的浏览器页面上显示,但是,如果查看HTML的源文件,是可以看到这些隐藏字段的,这样很可能会导致用户资料的泄露。显然,这是使用隐藏域方式的一个缺陷。

猜你喜欢

转载自fengyanzhang.iteye.com/blog/1905493