会话跟踪

首先,了解一下会话:

    HTTP是一种无状态协议,当用户发出请求,服务器就会做出响应,请求结束,连接断开,下次服务器再收到请求,它就不知道这个请求是哪个用户发过来的。由此可见,客户端与服务端之间的联系是离散的、非连续的。虽然当用户在同一网站的多个页面之间转换时,它知道是哪个客户端地址发过来的,却无法确定是否是同一个客户,而对于我们的应用来说,需要靠用户来管理,而不是靠客户端。

    所以对于我们的应用,它是需要有状态管理的,以便服务端能够准确的知道http请求是哪个用户发起的,从而判断他是否有权限继续这个请求。这个过程即常说的会话管理。从用户进入一个网站浏览到退出这个网站或关闭浏览器称为一次会话。

    会话跟踪即在这个过程中浏览器与服务其的多次请求保持数据共享的状态的技术。当一个客户在多个页面间切换时,服务器会保存改用户的信息。会话跟踪技术有:

隐藏表单域<input type="hidden">非常适合需要大量数据存储的会话应用
URL重写URL可以在后面附加参数,把会话ID编码在URL中,和服务器的请求一起发送,即使浏览器禁用cookie也可以实现会话跟踪
Cookie

一个Cookie是一个小的已命名数据元素,服务器使用SET-Cookie头标将它作为HTTP响应的一部分传送到客户端,客户端被请求保存Cookie值,在对同一服务器的后续请求使用一个Cookie头标将之返回到服务器。

cookie保存在浏览器缓存。通过键值对保存在浏览器中,可以设置cookie的过期时间属性来指定cookie的有效期。当下次浏览器发出请求时,会检索其保存的cookie。应用于自动登录、记录浏览过的商品。同时由于只能保存在浏览器的文本中,任意泄露个人信息,有时用户会禁用掉cookie。

与其它技术比较,Cookie的一个优点是在浏览器会话结束后,甚至在客户端计算机重启后它仍可以保留其值。

Session

使用setAttribute(String str,Object obj)方法将对象捆绑到一个会话。

  实际应用中,数据既可以在浏览器本地存储,也可以在服务器端存储。两者的区别是:

浏览器端服务器端
存储一些小数据可以保存所有用户的所有数据
分布保存在用户格子的浏览器中服务器端,更安全
存储在浏览器端,直接从本地获取,如sessionStorage、localStorage和cookie

在需要数据的时候浏览器要向服务器请求数据。

1.可以保存用户的持久数据,如数据库和云存储将用户的大量数据保存在服务器端;

2.保存用户的临时会话数据。服务器端的session机制,如jsp的session对象。实现上,服务器和浏览器之间仅需传递session id即可,服务器根据session id找到对应用户的session对象。会话数据仅在一段时间内(server端设置的session有效期)有效。

sessionStorage、localStorage和cookie之间的区别

 

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值