Session原理
Session对象是保存在服务端的,服务端为了区分不同客户端的请求,会为每一个不同的客户端创建一个会话对象(Session),作为不同客户端用户的唯一标识,起到取分、跟踪的作用。
每次HTTP请求的时候,客户端都会发送对应的Cookie信息到服务端。第一次创建Session的时候,服务端会在HTTP协议中通知客户端,在 Cookie 里面记录一个Session ID,以后每次请求把这个Session ID发送到服务器,用以在服务端创建具有唯一性的Session对象。如果客户端的浏览器禁用了 Cookie ,一般这种情况下,会使用URL重写的技术,即每次HTTP交互,URL后面都会被附加上一个诸如 sid=xxxxx 这样的参数,服务端据此来识别用户。
Session使用范例:实现用户登录功能,并在主页显示用户ID
- 服务端的Session是一个对象,并且有保存键值对的功能。所以每次我们打开主页时,可以使用Ajax请求,查看在服务端对应的该客户端Session中是否保存了用户ID,如果没有,则在主页显示需要登录。
- 登录完成后,利用Ajax请求将用户ID和密码传到服务端,服务端连接数据库检查用户ID且密码无误后,将用户ID以键值对的形式保存在Session对象中。
- 服务端告诉客户端查询无误,随后客户端在进行Ajax请求取得Session对象中的用户ID,并将用户ID显示在主页上。这样,整个流程就完成了。
服务端代码:
- 设置键值对存储用户ID</