美文网首页
浅谈Session

浅谈Session

作者: 好久不见甚是想念 | 来源:发表于2018-01-15 20:55 被阅读0次

一. Session技术

Cookie的局限性:
        1. 限制数据类型
        2. 不能保存中文
        3. Cookie容量比较小,只有4KB
        
    如果要保存4KB以上数据,或者要保存中文的数据,就不能使用Cookie技术,只能使用Session
    
    如果浏览器没有打开Cookie功能 Session就没有用!!!
    
    Session 的特点:
        会话数据保存在服务器上。(保存在服务器的内存中) temp文件
    
核心技术
    HttpSession类型: 是服务器用于保存会话数据的方式
        获取Session对象:
            HttpSession getSession();
            HttpSession getSeesion(boolean create);
        
        设置Session对象:
            void setMaxInactiveInterval(int interval); // 设置Session的有效时间
            void invalidate(); //销毁Session
            String getId();    //返回Session的ID号
           
        保存会话数据到Session对象中:
            void setAttribute(String name, Object obj); //设置Session保存会话数据,可以是一个Object对象
            Object getAttribute(String name); //更加Session的ID获取数据
            void removeAttribute(String name); //清除Session数据
Session的原理:
    功能是让服务器更快的识别不同的访问者
    
    前提:
        在哪一个Session【域对象】中保存的数据,就必须从哪一个Session【域对象】拿出数据
        
    
    服务器:Server1  浏览器:Browser1
    
    
    Browser1:保存了一个Server1给他分配的唯一的标识号,用cookie来保存
        服务器会创建一个Session 
            HttpSession session = request.getSession(); //保存浏览器Cookie信息中带有是SessionID,创建对应的
                                                        //Session对象
    
    Browser1新窗口: 因为是同一个浏览器,所以这里也会带有之前服务器给分配的SessionID信息
        服务器或根据浏览器的信息得到对应的Session
            HttpSession session = request.getSession();
            
    
    解读一下:HttpSession session = request.getSession();
    1)如果是浏览器第一次访问服务器,就会创建一个新的Session对象,用来保存和这个浏览器的会话数据
    并且生成一个唯一的sessionID,叫做 JSESSIONID
    2)会被JSESSIONID作为Cookie的值发送给浏览器,保存
        Cookie cookie = new Cookie("JSESSIONID", sessionID);
        response.addCookie(cookie);
    3)如果是第二次访问,浏览器是带有Cookie信息,在Cookie信息中有一个Cookie 叫做 JSESSIONID
    这个JSESSIONID就会发送给服务器
    4)服务器如果接受到了JSESSIONID信息,就会通过HttpSession session = request.getSession();得到
    对应的Session对象,进行浏览器和服务器直接的会话数据传递和控制
    
    
    【注意】
        在Tomcat服务器中,Session 的名字是JSESSIONID,给浏览器保存的Cookie信息中,只有
        Cookie名字是JSESSIONID的这个Cookie里面保存的才是服务器任务的SessionID
        
        不同的服务器判断是否是一个SessionID内容的方式不一样,
        在PHP中,浏览器Cookie名字为PHPSESSID这是Apache服务器认为的SessionID

相关文章

  • 浅谈Session

    一. Session技术

  • Session浅谈

    什么是session session就是一块在服务器端开辟的内存空间,就好比客户在服务器端的账户,它们被服务器保存...

  • 浅谈Session技术

    引入 因为Cookie有局限性,比如只能存非中文,容量限制等.详情可以看我的上一篇文章浅谈Cookie技术. 但是...

  • 浅谈session,cookie,sessionStorage,

    浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交...

  • 浅谈COOKIE与SESSION

    1 cookie 在网络上指小量信息,用来识别用户 2 各大浏览器每个域名大概有50个,每个4097字节,IE有2...

  • 浅谈cookie和session

    相关视频:v.qq.com/x/page/f0513vvyti4.html PPT:ptteng.github.i...

  • cookie,session,token浅谈

    发展史 1、很久很久以前,Web基本上就是文档的浏览而已,既然是浏览,作为服务器,不需要记录谁在某一段时间里都浏览...

  • 浅谈session,cookie,sessionStorage,

    浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交...

  • 浅谈cookie,session,token

    Cookie cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数...

  • 浅谈COOKIE 与 SESSION 区别

    1. 存储位置不同 Session 存储在服务器。 Cookie存储在客户端(本地)。 2. 服务器压力不同 Se...

网友评论

      本文标题:浅谈Session

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