教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

PHP中的session机制原理

更新时间:2019年08月13日12时42分 来源:传智播客

Session是客户端浏览器与服务器之间会话技术中的一种,session技术是以cookie技术为基础,会将重要的数据保存在服务器上,将标识性的数据以cookie的形式保存在客户端的一种技术。

服务器会为每一个客户端保存一份数据,那么能保存数据的地方也就只有数据库或文件。而session默认则以文件进行保存客户端数据(也就是每一个客户端保存一个文件)。一个服务器在为n多个客户端保存了数据到文件的情况下,在下次客户端再次请求时,如何能在众多的文件中找到属于当前客户端的文件呢(大海捞针)。其实很简单,前面已经提到,服务器在为客户端保存数据时,是以文本文件的形式保存数据,所以服务器会做到为每个来访问的客户端创建的文本文件名不会重复,这样就可以将文件名作为每一个客户端的标识,以cookie的形式保存到客户端。

当客户端再次发来请求时,由于已保存有cookie,cookie中保存的又是文本文件名。那么服务器在接收到这样的cookie时,就会读取出cookie中的文件名,再到硬盘中找到这个文件。


PHP培训

Session机制的原理

Session机制包含两个组成部分,其一是程序代码中的$_SESSION变量,另一个是硬盘中保存数据的文本文件(术语session文件)。Session机制主要体现在这两者之间的协同功能。它们的工作过程请看如下详细步骤。

首次请求:

Session机制开启,在硬盘中创建session文件,并将文件名以cookie形式返回客户端。

同时激活$_SESSION内存变量

首次请求结束时,将$_SESSION中的数据序列化并保存到session文件中。

其后各次:

Session机制开启,并读取客户端发送过来的cookie中保存的session文件名,根据文件名到硬盘中找到session文件,同时将session文件中的数据读取出来,并进行反序列化,再赋值给$_SESSION变量。这样通过session文件中,即实现了多次请求中数据的共享。

当本次请求结束后,还会再将$_SESSION内存中的数据序列化并保存到session文件中。【本文来自:传智播客



【推荐阅读】

PHP如何使用正则表达式进行匹配?



以下是传智博客热门视频教程,想提升就点起来吧!

Python入门教程完整版(懂中文就能学会) 零起点打开Java世界的大门
C++| 匠心之作 从0到1入门学编程 PHP|零基础入门开发者编程核心技术
Web前端入门教程_Web前端html+css+JavaScript 软件测试入门到精通

0 分享到:
和我们在线交谈!