当前位置: 首页 > 游戏攻略> 正文

深入理解Web服务器和Session的工作原理

来源:网络 作者:趣玩小编 发布时间:2024-09-01 09:57:37

浏览器通过web访问服务器,服务器的web服务开启后,第一步就是开启session,这也是session的第一阶段:

这个函数的作用:开启session,然后根据以前设置的session_name去读取cookie信息,判断$_Cookies[$session_name]判断是否有值,也就是是否存在session_id,如果存在就用这个session_id,如果没有就会随机生成一个唯一的32位的数值,将这个数值赋值给session_id。这个session_id就代表当前访问的用户。然后初始化$SESSION这个变量,根据session_id读取session文件中的内容(如果有session_id所对应的保存文件的话),把内容反序列化之后赋值到$SESSION这个变量中,这个阶段还有一个特别关键的作用,还会判断那些session文件已经过期,调用gc进程,删除掉过期的session文件。gc如何判断文件是否过期,如何操作后面再说

输出:
SID:PHPSESSID=bjjwfoo45hajsjv89trsgtiertbuiwom
session_id():bjjwfoo45hajsjv89trsgtiertbuiwom
cookie:提示Notice:undefined index:PHPSESSID
这个因为浏览器第一次请求还没有在cookie中存储session_id,这个cookie的一个特性,只有当第一次请求之后,服务器接收到请求才在服务器端设置cookie,存储session_id。
注意:cookie中存储的session_id默认是会话时间

SID:是系统常量,SID包含着会话名以及会话ID的常量,格式为“name=ID”,如果cookie中已经存在session_id,SID就为一个空字符串,不然就是"name=ID"

第二阶段就是脚本运行期间:
php只是对$_SESSION这个变量进行增删改查的操作,需要注意:这个阶段并没有影响到session文件里面的内容,除非你在这个阶段session_destroy()了,除此之外,该阶段不会对session文件有任何影响

第三阶段:脚本执行结束
在这个阶段才会对session文件进行操作,也就是这个阶段才会把$_SESSION数组中的数据序列化然后存储到session文件。

相关攻略 更多 +
玩家最喜欢 更多 +
热门攻略 更多 +
热搜
查看完整榜单