ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] # Session ****** 在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存下去。 当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。 注意:会话状态仅在支持 cookie 的浏览器中保存。 <br /> ## 会话实现原理 session 会话的原理大概如下所示: * 用户 A 第一次进入,没有附带任何标识信息(通常是 cookie) * 服务端接收请求,给予用户 A 一个会话标识(通常是 set_cookie,cookie 值将保密) * 服务端根据会话标识,在服务器本地存储用户信息 * 用户 A 端获取到会话标识,存储到用户端本地 * 用户 A 第二次请求,附带会话标识(通常是 cookie) * 服务端通过会话标识,找到服务端相应的用户信息 <br /> ## php 中的 session php 已经内置封装好了一个功能完整的会话管理,基础用法为: ```php <?php sesson_start(); // 启动新会话或者重用现有会话,发送 set-cookie 的响应头,告诉浏览器设置一个 php_session 的 cookie 会话,会话 id 为 php 随机产生,并在服务器端临时目录产生一个对应的 session 文件 $_SESSION['a'] = 1; // 存储一个关于该会话 id 的值 session_destroy(); // 销毁会话数据 // 当在脚本结束时,会将超全局变量 $_SESSION 中的值存储进对应的 session 文件 ``` <br /> 可自行搜索了解详细内容(如自定义 session_id,自定义存储方式,自定义启用会话方式等)