• Session会话追踪的实现机制


    概述:

    HTTP协议是一个无状态协议,即Web应用程序无法区分收到的两个HTTP请求是否是同一个浏览器发出的。为了跟踪用户状态,服务器可以向浏览器分配一个唯一ID,并以Cookie的形式发送到浏览器,浏览器在后续访问时总是附带此Cookie,这样,服务器就可以识别用户身份。

    什么是Session会话?

    1. Session就是一个接口(Httpsession)
    2. Session就是会话。它是用来维护一个客户端和服务器器之间关联的一种技术。
    3. 每个客户端之间都有一个自己的会话。
    4. Session会话中,我们经常用来保护用户登录之后的信息。

    Session的创建:

    JavaEEServlet机制内建了对Session的支持。当我们需要获取Session时,可以通过request请求对象的getSession()方法。

    Session机制:

    每个用户都会有一个唯一的ID来识别身份,每个用户第一次访问服务器后,会自动获得一个Session ID。如果用户在一段时间没有访问服务器,那么Session会自动失效,下次即使带着上次分配的Session ID访问,服务器也会认为这是一个新用户,会分配新的Session ID。但是在一次Session会话中包含若干次的request请求。(就像我们平时用的验证信息一样有时效性,服务器只识别验证码)

    追踪顾名思义,要有一个追的根源,然而在Session中这个根源就是一个名为JSESSIONID的Cookie。在Servlet中第一次调用request.getSession()时,Servlet容器自动创建一个Session ID,然后通过一个名为JSESSIONIDCookie发送给浏览器如图所示:

     并且这个Cookie就是用来跟踪用户会话的,由一个Servlet提供的HttpServlet本质上就是一个JSESSIONID。

    小结:

    • Servlet容器提供了Session机制以跟踪用户;
    • 默认的Session机制是以Cookie形式实现的,Cookie名称为JSESSIONID
    • 通过读写Cookie可以在客户端存储数据;

  • 相关阅读:
    0915练习
    企业网络的设计与实施
    C++GUI之wxWidgets(4)-编写应用涉及的类和方法(1)
    haas506 2.0开发教程-sntp(仅支持2.2以上版本)
    Android13 编译ninja failed with: exit status 137
    uni-app 5小时快速入门 15 uni-app语法(下)
    【linux命令讲解大全】092.用let命令进行算术计算的Bash内建工具
    首批智能重卡交付助力双11快运!自动驾驶玩家交出商业化新答卷
    NC2 重排链表
    Java操作Influxdb2.x
  • 原文地址:https://blog.csdn.net/qq_46642326/article/details/126480505