Blog icon indicating copy to clipboard operation
Blog copied to clipboard

PHP Session工作原理

Open codcodog opened this issue 8 years ago • 0 comments

PHP Session工作原理

基本上,会话(session)是为各个用户存储信息的系统或方式。

它根据唯一的会话(session)ID存储个人用户信息。所以,通过这种方式,用户的数据可以在网站的所有页面进行访问。

PHP遵循管理会话(session)的简单工作流程,即会话(session)开启时,PHP检索现有的会话(session)或创建新会话(session)。如果传递的是PHPSESSID,则PHP检索现有的会话(session),否则创建新会话(session)。

在默认情况下,会话(session)的创建文件存放在服务器上的临时目录(在php.ini的配置中确定)。会话(session)所有的变量和值都存储在那个目录。

php-sessopm

工作原理

  1. 首先,PHP为单个会话创建一个唯一标识符号(一个由32位十六进制数组成的随机字符串,例如:7fejekou828jf9jie03jai93jfa8383)

  2. PHPSESSID Cookie 将唯一标识号传递给用户浏览器以保存该号码。

  3. 在服务器上创建一个具有sess_前缀的唯一标识号(即sess_7fejekou828jf9jie03jai93jfa8383)的新文件。

  4. Web浏览器每次请求服务器都发送该cookie。

  5. 如果PHP从PHPSESSID cookie中获取唯一的标识号(在每个请求上),则PHP在临时目录中搜索并比较该号和文件名。 如果两者相同,则它检索现有会话,否则为该用户创建新会话。

当用户关闭浏览器或离开网站时,会话(session)将被销毁。 服务器也在会话时间的预定时段后终止会话这些简单的机制都是使用PHP来处理。

翻译:How Does PHP Session Works

(PS: 翻译不准确的地方,望海涵。)

codcodog avatar Feb 17 '17 09:02 codcodog