Web服务器如何通过布尔会话变量区分同一台PC上不同浏览器的请求?

时间:2017-01-05 11:39:38

标签: php apache session

当用户使用PHP登录时设置布尔会话变量,如:

$_SESSION['logged_in'] = true;

由于此会话变量是布尔值而不是数字,并且会话变量存储在the server not the user Computer上,我希望访问该站点的任何浏览器(用户)某人(另一个浏览器)已经登录,应该自动登录,因为会话变量的布尔值为 true ,而不是不同用户的唯一编号,并且已在服务器上设置。

即使已设置布尔会话,服务器如何识别特定浏览器未访问过该站点。

2 个答案:

答案 0 :(得分:0)

我认为这会回答你的问题How do PHP sessions work? (not "how are they used?")

tldr; 在一般情况下:

  • 会话ID在创建会话时发送给用户。
  • 它存储在cookie中(默认情况下称为PHPSESSID)
  • 每次请求时,浏览器会将cookie发送到服务器
  • 服务器(PHP)使用包含session_id的cookie来知道哪个文件对应于该用户。

答案 1 :(得分:0)

每个浏览器的会话数是唯一的,而不是每台计算机/ IP等等。浏览器将存储一个所谓的会话cookie,它将随每个请求发送回服务器,允许服务器识别用户。每次在$ _SESSION超级全局中存储内容时,此值都会记录在当前用户的会话中,而其他人无法使用。

进一步阅读:http://php.net/manual/en/book.session.php