会话跟踪

1. 什么是会话

会话是指一个终端用户(服务器)与交互系统(客户端)进行通讯的过程

2. 什么是会话追踪

对同一个用户对服务器的连续的请求和接受响应的监视。(将用户与同一用户发出的不同请求之间关联,为了数据共享)

3. 为什么需要会话跟踪

浏览器与服务器之间的通信是通过HTTP协议进行通信的,而http协议是”无状态“的协议,他不能保存客户的信息,既一次响应完成之后连接就断开了。下一次的请求需要重新连接,这就需要判断是否是同一个用户,所以才会有会话跟踪技术来实现这种要求

4. 四种会话跟踪技术

  1. URL重写

    URL(统一资源定位符)是web 上特定页面的地址,url地址重写的原理是将改用户Session的id信息重写到URL地址中,以便在服务器端进行识别不同的用户。

    优势

    URL重写能够在客户端停用cookies或者不支持cookies 的时候仍然发挥作用

  2. 隐藏表单域

    将会话ID添加到html表单元素中提交到服务器,此表单元素并不在客户端显示,浏览时看不到,源代码中有

  3. Cookie

    Cookie是Web服务器发送给客户端的一小段信息,客户端请求时可以读取该信息发送到服务端,进而进行用户的识别。对于客户端的每次请求,服务端都会将Cookie发送到客户端,在客户端可以进行保存以便下次使用。

    缺点:服务器创建保存与浏览器端,不可跨域名行,大小及数量有限

    保存方法

    1. 保存在客户端内存中,称为临时Cookie,浏览器关闭后,这个Cookie对象将消息
    2. 保存在客户机的磁盘上,称为永久Cookie,以后可会断只要访问该网站,就会将Cookie再次发送到服务器上(前期这个Cookie在有效期内)
  4. session

    每一个用户都有一个不同的session,各个用户之间是不能共享的,每个用户所独享的,在session中可以存放信息

    特点:保存在服务端,需要解决多态服务器共享问题。如果session内容过于复杂,当大量客户访问服务器时可能会导致内存溢出,因此,session里的信息应该尽量精简

    当服务端会创建一个session对象,产生一个sessionID来标识这个session对象,然后将这个sessionID放入到Cookie中发送到服务端,下一次访问时,sessionID会发送到服务器,在服务器进行识别不同用户

    Session是依赖Cookie的,如果cookie被禁用,那么session也将失效

5.Session和Cookie区别

  1. cookie数据存放在在客户的浏览器上,session数据放在服务器上
  2. cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session
  3. session会在一定时间内保存在服务器上,当访问增多,会比较占服务器性能,考虑到减轻服务器性能方面,应当使用cookie
  4. 单个cookie保存的数据不能不能超过4k,很多浏览器都限制一个站点最多保存20个cookie

6.应用场景

  • cookie:

    记住账号密码,购物车

  • session

    私人信息及登录验证信息在session

参考

会话跟踪技术的四种实现方法及特点整理Cookie

results matching ""

    No results matching ""