session状态持久化技术

一、什么是session?

首先要说明的是,http协议是一种无状态的协议,客户端每打开一个web页面,它就会与服务器建立一个新连接,发送新请求到服务器,服务器处理该请求将请求页面返回到客户端,服务器不记录任何客户端的信息。这样每次客户端发送的请求都是独立的,这样的方式在现实中是不实用的,而session(会话)恰恰是一种能将信息保存在服务器端的技术,它能记录特定的客户端到服务器的一系列请求。

二、会话跟踪技术

web应用提到的请求之间的状态的概念就称为“会话跟踪”,例如:用户进行网上购物对应一个对话,用户完成网上购物需要与服务器进行多次交互,每次选购特定的商品,服务器必须识别相应的请求,将商品放入与客户对应的购物车。

会话跟踪常用的方法包括使用cookie,url重写,隐藏表单域等技术。

1、cookie实现会话跟踪

cookie是一小块可以嵌入在http请求和应答中的数据。典型情况下,web服务器将cookie值嵌入到应答的头文件中,而浏览器则在其以后的请求中都将携带同样的cookie。cookie的信息中可以有一部分用来存储会话ID,这个ID被服务器用来将某些http请求绑定在会话中。cookie由浏览器保存在客户端,通常保存在一个名为cookie.txt文件中。

2、URL重写实现会话跟踪

保证在客户端禁用或不支持COOKIE时,仍然可以使用Session。是把session id直接附加在URL路径的后面。

3、隐藏表单域实现会话跟踪

    隐藏表单域将字段隐藏在html表单中,但不再客户端显示。比如在第一张页面中输入用户名和密码登录,服务器生成响应返回第二张页面,当第二张页面提交时可能仍然需要知道来自第一张页面中的用户名。

    那么就可以通过隐藏表单域来实现这一连续的过程。当第一张页面提交后,服务器端作出响应返回第二张页面,此页面中用隐藏域记录了来自登陆时的用户名。通俗的说就是服务器回发给客户端的响应时,同时把用户名再次回发到客户端,用隐藏域隐藏起来,是不可见的。当第二张页面提交时,此隐藏于中的用户名一并随表单提交。这样服务器就仍然可以判断此用户是否与以前的用户相同。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值