关于java:面试题-实现会话跟踪的技术

44次阅读

共计 971 个字符,预计需要花费 3 分钟才能阅读完成。

会话跟踪

HTTP 是一种 ” 无状态 ” 协定, 这意味着每次客户端检索 Web 页面时, 客户端关上一个独自的连贯到 Web 服务器, 服务器不会主动保留之前客户端申请的任何记录.
采纳会话跟踪技术能够用来断定申请是否来自同一个客户, 保留客户端与服务器之间的会话数据

四种会话跟踪技术

cookies

一个 web 服务器能够调配一个惟一的会话 ID 作为每个 web 客户端的 cookie, 并且对于来自客户端的后续申请, 服务器能够应用已接管的 cookie 来辨认.
具体流程: 当用户通过浏览器和服务器建设一次会话后, 会话 ID 就会随响应信息返回存储在基于窗口的 cookie 中, 只有浏览器没有敞开, 会话没有超时, 下一次申请时这个会话 ID 又会提交给服务器让服务器辨认用户身份.

特点:

  • 服务器创立保留于客户端. 因而不倡议寄存敏感数据.
  • 不可跨域名性
  • 大小及数量无限
IE6 IE7.8 Opera FF Safari Chrome
20 个 50 个 30ge 50 个 没有个数限度 53 个
4095B 4095B 4096B 4097B 4097B 4097B

然而这可能不是一个无效的办法, 因为有时候浏览器不反对 cookie, 例如人为禁止 cookie.

HttpSession

Servlet 提供 HttpSession 接口, 该接口提供了一种对网站的跨多个页面申请或拜访的办法来辨认用户并存储无关用户的信息.Servlet 容器应用这个接口来创立在客户端和服务器之间的会话. 会话在一个指定的时间段内继续, 能够跨多个连贯或来自用户的申请.

Session 保留于服务器端. 因而不要将过大的对象放在外面, 即便目前的 Servlet 容器能够在内存将满时将 Session 中的对象移到其余存储设备中, 然而这样势必影响性能.

Session 依赖 Cookie, 如果 Cookie 被禁用, 那么 session 也将生效.

URL 重写

在每个标识会话的 URL 开端追加一些额定的数据, 服务器会把该会话标识符与它已存储的无关会话的数据关联起来.

URL 重写可能在客户端停用 cookies 或者不反对 cookies 的时候依然可能发挥作用.

暗藏的表单字段

<input type="hidden" name="sessionid" value="12345">

当表单被提交时,指定的名称和值会被主动蕴含在 GET 或 POST 数据中. 每次当客户端发送回申请时,sessionid 的值能够用于跟踪不同的客户端.

正文完
 0