1. 定义
- 会话:客户端打开与服务器的连接发出请求 到 服务器响应客户端请求的全过程
- 会话跟踪:对同一个用户对服务器的连续请求和接收响应的监视
- why:浏览器和服务器之间是通过HTTP(无状态)协议通信的,它不能保持客户的信息,一次响应之后连接就断开了,下一次请求还需要重新连接,需要判断是否为同一用户,因此会话跟踪就来实现这个要求了
2. 常用方法
2.1 URL重写
- URL是Web上特定页面的地址
- URL重写的技术:在URL结尾添加一个附加数据以标识该会话,把会话ID通过URL的信息传递过去,以便在服务器端进行识别不同的用户
2.2 隐藏表单域
- 将会话ID添加到HTML表单元素中提交到服务器,此表单元素并不在客户端显示
2.3 Cookie
- Cookie 是服务器 —> 客户端的一小段信息,客户端请求时可以读取该信息发送到服务器端,进行用户的识别
- 对于客户端的每次请求,服务器都会将 Cookie 发送到客户端,在客户端可以进行保存,以便下次使用
- 客户端可以采用两种方式来保存 Cookie ,
- 保存在客户端内存中,称为临时 Cookie,浏览器关闭后这个 Cookie 对象将消失
- 保存在客户机的磁盘上,称为永久 Cookie,以后客户端只要访问该网站,就会将这个 Cookie 再次发送到服务器上,前提是这个 Cookie 在有效期内,这样就实现了对客户的跟踪
- Cookie 是可以被客户端禁用的
2.4 Session
- 每一个用户都有一个不同的 session,各个用户之间是不能共享的,是每个用户所独享的,在 session 中可以存放信息
- 在服务器端创建一个 session 对象,产生一个 sessionID 来标识这个 session 对象,将这个 sessionID 放入到 Cookie 中发送到客户端
- 下一次访问时,sessionID 会发送到服务器,在服务器端进行识别不同的用户
- Session 的实现依赖于 Cookie,如果 Cookie 被禁用,那么 session 也将失效