创建Session
- 用户访问到一个服务器,服务器检测用户发来的请求里是否包含了一个SESSION ID
- 如果服务器启用Session,并且用户请求中不包含了SESSION ID,服务器为该用户创建一个SESSION并生成一个与此SESSION相关的SESSION ID,存储在服务器中。这个SESSION ID是唯一的、不重复的、不容易找到规律的字符串。
- 本次用户访问中,SESSION ID通过COOKIE的形式返回给客户端保存。
- 用户再次访问服务器,服务器检测用户发来的请求里是否包含了一个SESSION ID
- 如果服务器启用Session,并且用户请求中包含了SESSION ID,说明用户已经登陆过并为此用户创建过SESSION。服务器就按照这个SESSION ID把这个SESSION在服务器的内存中查找出来。
使用Session
如果将Internet选项中把Cookie禁止,那么会不会出现把客户端的Cookie禁止了,那么SESSIONID就无法再用了呢? 可以有其他机制在COOKIE被禁止时仍然能够把Session id传递回服务器。 常见的URL重写,就是把Session id直接附加在URL路径的后面,作为URL路径的附加信息。
表现形式为: http://…。/xxx;jSession=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764;
另一种是作为查询字符串附加在URL后面,表现形式为: http://…。。/xxx?jSession=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764
还有一种就是表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把Session id传递回服务器。
Session作用
Session的根本作用就是在服务端存储用户和服务器会话的一些信息。 典型的应用场景有:
- 判断用户是否登录。
- 购物车功能。
|