Session
Session是针对每一个用户的,变量的值保存在服务器上,用一个sessionID来区分是哪个用户的Session变量,这个值通过用户的浏览器在访问时返回给服务器,当客户禁用Cookie时,这个值也可能设置为由get来返回给服务器。
Cookie机制采用的是在客户端保持状态的方案。它是在用户端的会话状态的存储机制,它需要用户打开客户端的Cookie支持。Cookie的作 用就是为了解决HTTP协议无状态的缺陷,而Session机制采用的是一种在客户端与服务器之间保持状态的解决方案。同时我们也看到,由于采用服务器端 保持状态的方案在客户端也需要保存一个标识,所以Session机制可能需要借助于Cookie机制来达到保存标识的目的,而Session提供了方便管 理全局变量的方式。
就安全性来说,当访问一个使用Session的站点时,同时在自己计算机上建立一个Cookie,建立在服务器端的Session机制更安全些,因为它不会任意读取客户存储的信息。
Cookie
正统的Cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的指示以提示浏览器按照指示生成相应的Cookie。
从网络服务器观点看,所有HTTP请求都独立于先前请求。就是说每一个HTTP响应完全依赖于相应请求中包含的信息。状态管理机制克服了HTTP的一些限制并允许网络客户端及服务器端维护请求间的关系。在这种关系维持的期间叫做会话(Session)。
Cookie是服务器在本地计算机上存储的小段文本,并随每一个请求发送至同一个服务器。IETF RFC 2965 HTTP State Management Mechanism 是通用Cookie规范。网络服务器用HTTP头向客户端发送Cookies,在客户终端,浏览器解析这些Cookies并将它们保存为一个本地文件,它 会自动将同一服务器的任何请求附上这些Cookies。
读取Cookie的语法
可以将Request值当作一个变量看待,执行下面的代码,将取回名字为KensCookie的Cookie值,并存入变量MyVar。
MyVar=Request.Cookies("KensCookie")
执行下面的代码,将判断名字为KensCookie的Cookie值是否为Yes。
If Request.Cookies("KensCookie")="Yes" then...