`

session会话跟踪详解

 
阅读更多

            session会话跟踪详解


最近学了session会话,来说下我对session会话机制的理解吧。

一、session是什么? 

    session是jsp隐式对象(会话对象)
    session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。由于web server对每一个客户端请求都没有历史记忆;

    session用来保存客户端状态信息;
   

二、什么是会话(session)跟踪?
    首先, HTTP请求是无状态的,通俗点说,就是你打开一个网页,和打开下一个网页之间,没有任何关系, 数据不会保存共用的。 其次, 会话,就是人的对话, 一次会话指从开始聊天到聊天结束, 在这里就是指,你进入一个网站一直访问浏览,直接到你退出这个网站,或者关浏览器, 这是一次会话, 会话跟踪, 就是在你多次访问一个网站之间要保存数据, 多次请求要保存共有的数据,就叫会话跟踪了
三、session ID的作用
       当程序需要为某个客户端(浏览器)的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为session ID,服务器在响应时,会将Session对象的ID(session ID通过临时Cookie的方式响应给浏览器,浏览器的临时Cookie会存下sessionID,每次请求都会带上sessionID,可以根据这个ID判断是不是同1个用户访问;如果已包含一个session ID,则说明以前已经为此客户端创建过session,服务器就按照session ID把这个 session检索出来使用(如果检索不到,可能会新建一个),如果客户端请求不包含session ID,则为此客户端创建一个session并且生成一个与此session相关联的session ID,session ID的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个 session id将被在本次响应中返回给客户端保存。
    如果有多个浏览器同时请求服务器,服务器会根据SessionID找到对应的浏览器,开不同的浏览器是不同的会话,同一个浏览器是同一个会话

四、HTTP协议与状态保持
    -http是无状态(stateless)的通信协议,当客户端发出请求时,服务器才会建立连接,一旦请求结束,服务器变短断开连接
    session是解决http协议无状态问题的服务端解决方案,它能让客户端和服务端一系列交互动作变成一个完整的事务,能使网站变成一个真正意义上的软件。
五、 session对象何时被销毁?
    session在下列情况下被销毁
    1.程序调用HttpSession.invalidate();(销毁服务器上的session对象,重新发起请求时,会认为是一个新的会话,session ID不同)
    2.距离上一次收到客户端发送的session ID时间间隔超过了session的超时设置;
    3.服务器进程被停止(非持久session)
    4.浏览器关闭

六、举例阐述四种会话跟踪技术的特点,应用场景

    隐藏表单域:<input type="hidden">,非常适合步需要大量数据存储的会话应用

    1、URL传递参数
    url?参数名=值&参数名=值
    2、隐藏表单域
    3、使用Cookie
    保存在客户端的
    永久性Cookie 设置了有效时间的,就是永久性的  
             会以文件的形式保存在浏览器的临时文件夹中

    临时性Cookie 当客户端关闭之后,Cookie就没有了
            只是保存在浏览器的缓存中
 
    4、使用会话对象session
    session的默认失效时间是30分钟
    在web.xml中可以配置session的失效时间

        <session-config> 
                  <session-timeout>10</session-timeout> 
        </session-config> 

 
七、Cookie与Session的区别
    1.Cookie是存在浏览器中的,Session是存在服务器中的

    2.Cookie的安全性要低于Session,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

    3.Cookie可能会被用户禁用

    Session的数据是存在服务器内存中,关掉浏览器,会清空Session
    临时性Cookie存在浏览器的缓存中,关掉浏览器,会清空
    永久性Cookie是存在临时文件中,到达有效期前,一直存在

分享到:
评论

相关推荐

    Session详解

    2. **会话跟踪**:后续请求中,浏览器自动将此会话ID发送回服务器,使服务器能够识别并关联请求到正确的会话对象。 3. **状态管理**:服务器在会话对象中存储和更新用户状态,如登录状态、个性化设置等。 4. **会话...

    session的跟踪机制

    ### Session的跟踪机制详解 #### 一、Session与Cookie的区别 在Web开发中,Session 和 Cookie 是两种常用的技术,用于维护客户端与服务器之间的状态信息。它们各有特点,在不同的场景下发挥着重要作用。 - **...

    PHP会话跟踪

    4. **Session**:Session是一种服务器端的会话跟踪机制。它在服务器上为每个用户创建一个唯一的会话标识符,并将用户数据保存在服务器上,以提供更高级的安全性和灵活性。 - 创建Session示例: ```php session_...

    Cookie,Session,Token详解.pdf

    根据提供的文件信息,以下是对文件《Cookie,Session,Token详解.pdf》中知识点的详细解读: 1. Cookie的相关知识 1.1 Cookie不是缓存。它是由服务器创建并存储在客户端的一小段文本信息,通常以字典(键值对)的...

    JSP中session的使用详解

    ### JSP中Session的使用详解 #### Session概念与作用 在Web开发中,`Session`是一种用于维护客户端与服务器之间会话状态的技术。不同于HTTP协议的无状态特性,`Session`使得服务器能够识别并追踪特定用户的状态,...

    Cookie、Session机制详解.doc

    Cookie、Session机制详解 Cookie机制是Web程序中常用的技术,用来跟踪用户的整个会话。Cookie通过在客户端记录信息确定用户身份。Cookie机制可以弥补HTTP协议的无状态特性,使服务器可以从客户端获取用户信息,以便...

    session和cookie详解

    ### Session与Cookie详解 #### 一、Session与Cookie的基本概念 **Session** 和 **Cookie** 是Web开发中用于保持客户端与服务器之间会话状态的重要技术。由于HTTP协议本身是无状态的,即服务器无法自动记录客户端的...

    Cookie与session机制详解

    ### Cookie与Session机制详解 #### 一、Cookie与Session的概念及区别 在Web开发中,为了保持用户的状态信息,通常会用到两种技术:Cookie和Session。这两种技术都是用来跟踪用户的浏览活动,但它们的工作原理有所...

    PHP session 会话处理函数_.docx

    ### PHP Session 会话处理详解 #### 一、引言 在互联网应用开发中,保持用户的登录状态或个性化设置是一项常见的需求。然而,由于HTTP协议的无状态特性,服务器难以跟踪用户的行为。PHP Session机制正是为了解决这...

    Java会话技术详解.pdf

    Java会话技术详解 Java会话技术是指在客户端浏览器和服务端之间,通过Cookie和Session技术实现多次请求和响应的数据共享。下面是Java会话技术的详细知识点: 一、Cookie技术 Cookie是一种客户端会话管理技术,...

    Zend Framework入门教程之Zend_Session会话操作详解

    其中Zend_Session是用于会话管理的一个重要组件。本篇教程将详细介绍如何使用Zend_Session进行会话操作,并通过实例展示具体使用技巧。 会话操作是Web应用中不可或缺的部分,它允许我们在用户浏览多个页面时保持...

    Session的工作原理与概念详解

    ### Session的工作原理与概念详解 #### 一、Session的基本概念 在计算机科学中,特别是网络编程领域,“**Session**”一词被广泛使用,并且在不同的上下文中具有不同的含义。通常,Session指的是客户端与服务器...

    SIP(Session Initiation Protocol )详解

    **SIP(Session Initiation Protocol)详解** SIP(Session Initiation Protocol)是一种应用层控制协议,用于发起、管理和终止多媒体通信会话,如语音通话、视频会议、即时消息等。它在互联网协议(IP)网络上运行...

    JavaWeb Session 会话管理实例详解

    总的来说,JavaWeb Session会话管理是Web应用中不可或缺的一部分,它帮助开发者在无状态的HTTP环境中保持用户的状态,提供了安全退出机制,并提供了多种跟踪会话的方式,以适应不同用户环境和安全需求。理解并熟练...

    给予servelet的会话跟踪的PPT

    **Servlet的会话跟踪技术详解** 在Web开发中,Servlet是一种Java编程语言编写的服务器端程序,主要用于扩展服务器的功能,处理由HTTP协议传输的数据。在Servlet应用中,会话跟踪是实现用户会话持久化的重要手段,...

    7、会话跟踪技术.doc

    在这个过程中,为了在多个请求之间共享数据,开发者会利用Cookie和Session这两种主要的会话跟踪技术。 **Cookie技术详解** 1. **什么是Cookie** Cookie是一个由服务器生成并发送到客户端浏览器的键值对,用来识别...

    跨服务器session应用详解

    【跨服务器session应用详解】 在Web开发中,session机制是一种至关重要的技术,它允许服务器在多个请求之间跟踪用户的状态,从而实现动态交互和个性化服务。本文将深入探讨session的工作原理,以及如何在Java Web...

    php5的session详解

    Session 技术正是为了解决这个问题而设计的,通过在服务器端存储用户的会话信息,并通过会话标识符(Session ID)来跟踪用户的行为。 #### 二、Session 的工作原理 - **Session ID**:服务器会为每个用户分配一个...

    Session详解.doc

    ### Session详解 #### 一、引言 在Web开发领域,`Session`是一个核心概念,尤其是在涉及用户状态管理和个性化体验的场景中。虽然Session的概念和技术已经存在多年,但很多开发者仍对其工作原理和最佳实践不够熟悉...

Global site tag (gtag.js) - Google Analytics