zoukankan      html  css  js  c++  java
  • 认识session

    以往我们认为在servlet中通request.getSessioin()就可以得到session,设置一些属性,就是session的功能;当客户端关闭浏览器时,session就“消失”了。这些看上去都很合理,但有些细节必须搞清楚。

    1、会话跟踪的原理。
            Java Servlet API通过Session技术来跟踪会话和管理会话内容。当客户第一次连接到服务器的时候,服务器为其建立一个session(通过 session.isNew()方法可以判断客户端是不是“第一次”),并分配给客户一个唯一的标识(Session ID),以后客户的每次提交请求,都要将标识一起提交(提交该标识的方法有多种),服务器根据标识找到特定的Session,用这个Session记录客户的状态。
            那么,在S与B之间,是如何传送这个Session ID的呢?
            有三种机制:
            1)SSL会话。(略)

            2)Cookies
            服务器利用响应报头 Set-Cookies来发送Cookies信息。RFC2109规范中的Set-Cookies报头格式为:
     
    1. Set-Cookies: NAME=VALUE; Comment=value; Domain=value; Max-Age=value; Path=value;
    2. Secure; Version=1*DIGIT  

    如果是用于会话跟踪的Cookies,NAME的值必须是JSESSIONID。
            当浏览器接受到含有这个报头的response后,就会在内存中构建一个cookies。当它给特定的服务器(由Domain和Path值来区别)发送请求时,就会在请求报头中加入这样的信息:
    1. Cookies: JSESSIONID=*****************************************  

    那么服务器就能找到对应的session,来跟踪用户了。

            3)URL重写
            当浏览器禁用了Cookies后,就只能借助URL重写了。URL重写就是在请求地址中直接加入JSESSIONID信息,如:
     
    1. http://www.hust.edu.cn/clxy/index.jsp; jsessionid=******************************  

    这样,服务器也能找到对应的session,来跟踪用户。

    2、具体使用。
            平常在编程的时候,似乎并没有刻意地去用Cookies,更没有使用URL重写了。那么session是怎么工作的呢?请看续篇:认识session(续)——自己动手做试验
  • 相关阅读:
    linux指令大全
    strcpy.strcmp.strlen.strcat函数的实现
    推箱子
    头文件string.h里的函数
    SVN 版本控制工具
    Nodejs 学习
    JavaScript基础知识复习
    CSS3 学习小结
    JSP中 JSTL
    JSP中的EL语言
  • 原文地址:https://www.cnblogs.com/pricks/p/1601882.html
Copyright © 2011-2022 走看看