zoukankan      html  css  js  c++  java
  • 会话技术 cookie and session

    会话技术:

        会话:浏览器访问服务器端,发送多次请求,接受多次响应。直到有一方断开连接。会话结束。
        
        解决问题:可以使用会话技术,在一次会话的多次请求之间共享数据。
            
        分类:
            客户端会话技术    Cookie
            服务器端会话技术    Session

      客户端会话技术:Cookie 小饼干的意思

            服务器端不需要管理,方便。但是不安全。
            
            原理:
                1.客户端第一次请求服务器端,服务器作出响应时,会发送set-cookie头,携带需要共享的数据
                2.当客户端接受到这个响应,会将数据存储在客户端
                3.当客户端再次请求服务器端时,会通过cookie请求头携带着存储的数据。
                4.服务器接受带请求,会获取客户端携带的数据。
            
            Java代码实现:
                1.发送cookie
                    //1.创建Cookie对象。
                    Cookie c = new Cookie("name","zhangsan");
                    //2.通过response发送cookie
                    response.addCookie(c);
                    
                2.接收cookie
                    //1.获取所有cookie数组
                    Cookie[] cs = request.getCookies();
                    //2.遍历数组
                    if(cs != null){
                        for (Cookie c : cs) {
                            //获取cookie的名称
                            String name = c.getName();
                            //判断名称,得到目标cookie
                            if("name".equals(name)){
                                //获取值
                                String value = c.getValue();
                                System.out.println(name+":"+value);
                            }
                        }
                    }
            
            Cookie的细节:
                1.默认情况下,cookie保存在客户端浏览器内存中。
                  需要将数据持久化存储在客户端的硬盘上。
                  设置cookie的存活时间。setMaxAge(int s);
                 
                2.Cookie是不支持中文数据的。如果要想存储中文数据。需要转码。
                    URL编码
            
            功能:记住用户名和密码


            服务器端会话技术:Session  主菜的意思
            
            服务器端需要管理数据,麻烦,但是安全。
            
            原理:
                1.客户端访问服务器端,在服务器端的一个对象(Session)中存储了数据
                2.服务器给客户端作出响应时,会自动将session对象的id通过响应头 set-cookie:jsessionid=xxx 发送到客户端
                3.客户端接受到响应,将头对应的值存储到客户端
                4.客户端再次请求时,会携带着请求头 cookie:jsessionid=xxx.
                5.服务器接受到请求,通过jsessionid的值,找到对应的session对象。就可以获取对象中存储的数据了。
                
                Session技术依赖于cookie。
            
            获取session
                HttpSession session = request.getSession();
            
            域对象:
                setAttribute():
                getAttribute():
                removeAttribute():
            
            session细节:
                1.客户端关闭了,两次session一样吗?
                    不一样。因为客户端浏览器内存释放了,jsessionid没了。
                  服务器关闭了,两次session一样吗?
                    不一样。因为服务器内存释放了,session对象没了。
                        session的钝化:
                            当服务器正常关闭时,会将session对象写入到服务器的硬盘上。
                        session的活化:
                            当服务器正常启动时,会将session文件还原为session对象
            
                2.session对象的销毁
                    1.session超时
                        <session-config>
                            <session-timeout>30</session-timeout>
                        </session-config>
                    
                    2.invalidate():session销毁
                    
                    3.服务器关闭。
                    
                3.session依赖于cookie,如果客户端禁用了cookie,那么session该咋办?
                    URL重写。

             
                4.getSession方法的重载:
                    boolean:
                        true:默认值
                            通过id查找session,如果没找到,新创建一个
                        false:
                            通过id查找session,如果没找到,返回null
                            第一次创建一个新的对象

     

  • 相关阅读:
    sklearn: TfidfVectorizer 中文处理及一些使用参数
    sklearn: TfidfVectorizer 中文处理及一些使用参数
    python在文件中输入整数
    python在文件中输入整数
    Python文件操作,with open as追加文本内容实例
    Python文件操作,with open as追加文本内容实例
    Python中的Bunch模式
    Python中的Bunch模式
    python文本挖掘模版
    python文本挖掘模版
  • 原文地址:https://www.cnblogs.com/cgj1994/p/10075143.html
Copyright © 2011-2022 走看看