[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,自定义存储方式,自定义启用会话方式等)
- 引言
- Introduction
- 运行模式
- php-fpm
- php-cli
- 基础介绍
- 网络协议
- ip
- tcp
- tcp
- http
- webSocket
- udp
- port端口
- 会话管理
- cookie
- session
- api/token
- linux基础
- lnmp安装
- 命令
- 进程管理
- 扩展安装
- 端口监控
- 防火墙说明
- php7.0
- 部分新特性
- php回调/闭包
- 回调事件
- 闭包/匿名函数
- php多进程
- 多进程开启
- 进程通信
- 进程信号
- 僵尸进程
- 孤儿进程
- 守护进程
- 同步/异步
- 阻塞/非阻塞
- 协程
- Swoole
- 初始Swoole
- 运行机制
- 生命周期
- composer使用
- EasySwoole
- 设计理念
- 组件说明
- 运行过程
- demo
- 提问的艺术