美文网首页
Cookie和Session

Cookie和Session

作者: mochisher | 来源:发表于2019-06-16 16:06 被阅读0次

    Session

    是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;

    Cookie

    是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。

    简介:
    本来 session 是一个抽象概念,开发者为了实现中断和继续等操作,将 user agent 和 server 之间一对一的交互,抽象为“会话”,进而衍生出“会话状态”,也就是 session 的概念。
    而 cookie 是一个实际存在的东西,http 协议中定义在 header 中的字段。可以认为是 session 的一种后端无状态实现。
    而我们今天常说的 “session”,是为了绕开 cookie 的各种限制,通常借助 cookie 本身和后端存储实现的,一种更高级的会话状态实现。
    所以 cookie 和 session,你可以认为是同一层次的概念,也可以认为是不同层次的概念。具体到实现,session 因为 session id 的存在,通常要借助 cookie 实现,但这并非必要,只能说是通用性较好的一种实现方案。

    Session:

    服务器创建session出来后,会把session的id号,以cookie的形式回写给客户机,这样,只要客户机的浏览器不关,再去访问服务器时,都会带着session的id号去,服务器发现客户机浏览器带session id过来了,就会使用内存中与之对应的session为之服务。可以用如下的代码证明:
    ~
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {

         response.setCharacterEncoding("UTF=8");
         response.setContentType("text/html;charset=UTF-8");
         //使用request对象的getSession()获取session,如果session不存在则创建一个
         HttpSession session = request.getSession();
         //将数据存储到session中
         session.setAttribute("data", "孤傲苍狼");
         //获取session的Id
         String sessionId = session.getId();
         //判断session是不是新创建的
         if (session.isNew()) {
             response.getWriter().print("session创建成功,session的id是:"+sessionId);
         }else {
             response.getWriter().print("服务器已经存在该session了,session的id是:"+sessionId);
         }
     }
    

    ~

    相关文章

      网友评论

          本文标题:Cookie和Session

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