重新认识之:Session篇
1.Session的作用
Session被称作"会话控制",是一个与时间相关的概念,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
任何东西存在都是基于某种需求的:Session是的客户端数据持久化,跨页面访问得到实现。
2.Session工作原理
1)当一个session第一次被启用时,一个唯一的标识SessionID被存储于本地的cookie中,并基于这个ID来存储变量
可以从上图看到响应头自动添加了Cookie。当下一次访问时,服务端会根据请求头ID来判断。
3.Session的利弊
1)利处
由于HTTP协议自身的特点,用户每执行一个PHP脚本都需要和Web服务器重新建立连接。又由于无状态记忆的特点,此次连接无法得到上次连接的状态。无法实现数据持久化,Session使用变量的形式解决了这个难题。
而且数据也相对较为安全
2)弊端
由于Session存储在服务端,随着越来越多用户登录,Session 所需要的服务器内存量也会不断增加。
访问 Web应用程序的每个用户都生成一个单独的 Session 对象。每个 Session 对象的持续时间是用户访问的时间加上不活动的时间。
如果每个 Session 中保持许多对象,并且许多用户同时使用 Web应用程序(创建许多 Session),则用于 Session 持久性的服务器内存量可能会很大,从而影响了可伸缩性。