Answers:
在一般情况下:
PHPSESSID
)会话文件中的数据是$_SESSION
序列化的内容(即表示为字符串-具有诸如serialize的功能);并且在PHP加载文件时未序列化以填充$_SESSION
数组。
有时,会话ID不会存储在Cookie中,而是也会通过URL发送-但这在当今很罕见。
有关更多信息,您可以查看手册的“ 会话处理”部分,其中提供了一些有用的信息。
例如,有一个有关传递会话ID的页面,该页面解释了如何使用Cookie或URL 在会话之间传递会话ID,以及哪些配置选项对此产生了影响。
PHP会话如何工作
首先,PHP a86b10aeb5cd56434f8691799b1d9360
为单个会话创建一个16字节长的唯一标识符号(例如,以32个十六进制字符的字符串存储)。
PHPSESSID cookie将该唯一标识号传递给用户的浏览器以保存该号码。
在服务器上创建一个新文件,该文件的名称与具有sess_前缀(即sess_a86b10aeb5cd56434f8691799b1d9360
)的唯一标识号相同。
浏览器随每个请求将该cookie发送到服务器。
如果PHP(在每次请求中)从PHPSESSID cookie获取该唯一标识号,则PHP将在临时目录中搜索并将该编号与文件名进行比较。如果两者相同,则它将检索现有会话,否则将为该用户创建一个新会话。
当用户关闭浏览器或离开站点时,会话将被破坏。在会话时间的预定时间段到期后,服务器还将终止会话。这些是PHP用于处理会话的简单机制步骤。希望本文对您有所帮助,以帮助您了解PHP SESSION的工作方式。
有关更多详细信息,请参见本文。PHP会话如何工作
mysite.com/cart
。我还将获得“ Hello Joe Doe,5条消息,这是您的购物车列表...”又名会话信息。–但是,关于该空白选项卡的浏览器为什么会发送任何Session-ID以及GET-Request?快速更新:啊,找到答案了:+)
PHP中的会话是通过使用session_start()函数启动的。与setcookie()函数一样,session_start()函数必须位于页面上任何HTML(包括空行)之前。它将看起来像这样:
<?php session_start( );?><html><head>
.......等session_start()函数生成一个随机的会话ID,并将其存储在用户计算机上的cookie中(这是实际上存储在客户端上的唯一会话信息。 )Cookie的默认名称是PHPSESSID,尽管可以在服务器上的PHP配置文件中更改此名称(但是,大多数托管公司会保留它的名称。)要在您的PHP代码中引用会话ID,因此,您应引用变量$ PHPSESSID(这是一个cookie名称;还记得Cookie中的名称吗?)