美文网首页
会话跟踪技术

会话跟踪技术

作者: 聪明的小一休 | 来源:发表于2019-05-22 16:06 被阅读0次

    什么是会话?

    可简单理解为:打开浏览器——》访问一些服务器内容-》关闭浏览器,整个过程称之为一个会话。

    会话过程中要解决的问题?

    Http是一种"无状态"协议,每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,服务器要想办法为每个用户保存这些数据。
    例如:
    1.用户登录场景,当不同的用户登录系统后,我们如何在主页面显示不同的用户名?
    2.购物场景:打开浏览器——》浏览商品列表——》加入购物车(把商品信息保存下来)——》关闭浏览器

    会话跟踪技术

    会话跟踪技术是一种在客户端与服务器间保持HTTP状态的解决方案,管理浏览器客户端和服务器端之间会话过程中产生的会话数据。
    *从开发角度考虑,是使上一次请求所传递的数据能够维持状态到下一次请求,并且辨认出是否相同的的客户端所发送出来的。

    会话跟踪技术

    主要分为以下几种
    1.Cookie技术
    2.Session技术
    3.URL重写技术
    4.隐藏表单域技术

    Cookie简介

    Cookie技术是一种在客户端保持会话跟踪的解决方案,会话数据保存在客户端浏览器。
    Cookie在用户第一次访问服务器时,由服务器通过响应头的方式发送给客户端浏览器;当用户再次向服务器发送请求时会附带上这些文本信息。
    在使用Cookie时,要保证客户端浏览器接受Cookie。

    返回值 方法 描述
    Object clone() 覆盖标准java.lang.Object.clone方法以返回此cookie的副本。
    String getComment() 返回描述此用途的注释,或者null cookie是否没有注释
    String getDomain() 返回为此cookie设置的域名。
    int getMaxAge() 返回cookie的最大年龄。以秒为单位指定。默认情况下,-1指cookie将持续存在直到浏览器关闭。
    String getName() 返回cookie的名称。
    String getPath() 返回浏览器返回此cookie的服务器上的路径。
    boolean getsecure() 如果浏览器仅通过安全协议发送cookie,返回true,或者浏览器可以使用任何协议发送cookie,返回false
    String getValue() 返回cookie的值
    int getVersion() 返回此cookie符合的协议版本
    void setComment(java.lang.String purpose) 指定描述cookie用途的注释
    void setDomain(java.lang.String pattern) 指定应在其中显示此cookie的域
    void setMaxAge(int expiry) 以秒为单位设置cookie的最大年龄
    void setPath(java.lang.String uri) 指定客户端返回cookie的cookie路径。
    void setSecure(boolean flag) 向浏览器指示是否应仅使用安全协议(例如HTTPS或SSL)发送cookie。
    void setValue(java.lang.String newValue) 创建cookie后,为cookie分配新值。
    void setVersion(int v) 设置此cookie符合的cookie协议的版本。

    构造Cookie对象
    Cookie(java.lang.String name,java .lang.String value);
    创建cookie对象

    Cookie c1=new Cookie("aaa","123456");
    c1.setMaxAge(60);//设置有效时间
    response.addCookie(c1);//将cookie对象响应给客户端浏览器,存储在客户端
    

    Session简介

    Session是指使用HttpSession对象实现会话跟踪的技术,是一种在服务器端保持会话跟踪的解决方案。
    HttpSession对象是javax.servlet.http.HttpSession接口的实例,也称为会话对象。
    HttpSession对象会在用户第一次访问服务器时由容器创建(注意只有访问JSP,Servlet等程序时才会创建,只访问HTML,IMAGE等静态资源并不会创建),当用户调用其失效方法(invalidate()方法)或超过其最大不活动时间会失效。在此期间,用户与服务器之间的多次请求都属于同一个会话。
    Session和Cookie的主要区别在于:
    Cookie是把用户的数据写给用户的浏览器。
    Session技术把用户的数据写到用户独占的session中。
    相同点:都是在server端产生
    cookie将自己发送给浏览器,
    session将Jsessiionid借助cookjie技术传给浏览器

    相关文章

      网友评论

          本文标题:会话跟踪技术

          本文链接:https://www.haomeiwen.com/subject/kxmfzqtx.html