服务器如何按会话识别设备?

时间:2016-06-28 14:09:39

标签: php session

当我登录到我的stackoverflow帐户时,可能是stackoverflow为我创建了一个登录会话。像这样:

$_SESSION['login'] = 1;

此会话仅适用于我的特定设备。所以我猜我的设备上有一个东西在stackovetflow的服务器上,它根据那个东西识别我的设备。

我所有的问题都是那个东西是什么?我的设备的哪个参数将存储在服务器上?换句话说,会话如何仅适用于特定设备?

1 个答案:

答案 0 :(得分:1)

默认情况下,创建会话时,会由称为会话密钥的某个字符串标识。默认情况下,在PHP中,它以名称PHPSESSID存储为cookie。例如PHPSESSID = absuk44ocvs55mkp6eh1gh58q3

然后可以使用此密钥加载会话信息。会话信息可以存储在例如一个文件。

会话ID可以由客户端以多种方式使用/存储。在PHP中,它似乎支持在URL中使用会话,但也支持在cookie中使用会话。虽然cookie也可以是disabled

请注意,某些基于php的网站也可能以不同于文件的方式存储相关数据。例如有些人可能会将其存储在数据库中。

但在大多数情况下,某些数据会存储在用于跟踪用户的Cookie中。

您的示例代码:

$_SESSION['login'] = 1;

在设置变量之前需要session_start()。 这将加载会话(基于现有的有效会话ID)或创建新会话(随机会话ID,或根据配置传递会话ID)。 登录'和值将存储在本地服务器上。

下次客户端连接时,会读取会话ID,并且可以根据此会话ID检索存储在$ _SESSION中的数据。