5.1 提出的问题
如何关联来自客户的多个请求?
5.1.1维持状态
会话用于维护请求和请求之间的状态。HTTP是无状态的
从服务器角度,当用户的Web浏览器打开第一个链接到服务器的套接字时请求就开始了,直到服务器返回最后一个数据包并关闭连接时,该请求结束。
此时,浏览器与服务器之间没有任何联系,当下一次请求链接开始时,无法将下一次请求与之前的请求关联起来、
购物车中,每次向购物车中添加商品时,网站通过什么方式了解到它们都是来自于同一个基选集中的同一浏览器,并将它关联到你的浏览器,其他人是
无法查看你的购物车的
5.1.2记住用户
登录在线论坛时,用户都会有自己的用户名和密码,用户登录时需要提供用户名和密码的个人身份验证(使用用户名和密码的身份证明方式一直存在争议
第25章讨论),登录后用户回复主题,添加论坛主题,参与其他用户的私人套路你,向版主举报主题或回复,还可以收藏主题,注意整个过程用户只需登录
一次,系统需要通过某种方式记住该用户,会话提供了该功能
5.1.3启动应用程序工作流
通常用户在使用高级Web应用程序完成某个任务时,需要使用某种形式的工作流。
工作流包含了许多步骤,每个步骤的结束都代表了单个任务的结束。将所有步骤结合在一起就组成了整个工作流。
例如网站中创建用于发布的新闻时,记者可能首先进入一个可以输入标题、标语、和正文的页面,并对其中的元素格式化。
在下个页面中它可能需要选择一幅或多幅与文章有关的照片,并指定如何显示它们。
它还需要选择一些类似的文章或者可用于搜索类似文章的关键字,这样这些文章就会被列在相关的文章框中
5.2 使用会话session cookie 和URL重写
1.会话的理论基础知识,以及如何实现会话
2.java EE Web应用程序中会话实现的规范
会话:由服务器或Web应用程序管理的某些文件、内存片段、对象或者容器,它包含了分配给它的各种不同数据。这些数据可以是:用户名、购物车、
工作流细节等。用户浏览器中不用保持或维护任何此类数据。
服务器和浏览器之间的会话通常会被赋予一个随机生成的字符串,称为”会话ID“。
第一次创建会话时(即收到请求时),创建的会话ID将会作为响应的第一部分返回到用户浏览器中。
接着,该浏览器发出的请求都将通过某种方式包含该会话ID、
当应用程序收到含有会话ID的请求是,他就可以通过该ID将现有会话与当前请求关联起来,
接下来的讨论 就是如何将会话ID从服务器返回到浏览器,并在之后的请求中包含该ID
目前, 两种技术可用于完成该任务:会话cookie 和 URL重写
5.2.1 了解会话cookie