如果会话存储在文件中,为什么cookie仍然用于存储它们?

时间:2017-02-08 04:19:57

标签: php session cookies

客户端: start_session()创建了一个Cookie(默认情况下):Name: PHPSESSID; Content: 1q2w3e4r5t; Domain: '/'; Expires:...

服务器 它还会创建一个存储在(我的情况)中的文件:/var/lib/php/sessions。在那里打电话:sess_1q2w3e4r5t。 (绝对路径:/var/lib/php/sessions/sess_1q2w3e4r5t

所以我们有两个物理事物与我刚刚创建的会话相关联。

  • 两者兼得的重点是什么?

  • 我可以将会话存储在/var/lib/php/sessions而不管use_only_cookies选项吗?

  • 我有一个$_SESSION['counter']变量的经典示例。这意味着,每次我重新加载example.php页面时,$_SESSION['counter']增量(++)都会增加一个。因此,在按下F5按钮的循环中,假设我将55作为$_SESSION['counter']的值。最后我是那个cookie但 /var/lib...文件。删除后我得到 56,循环继续正常。这只是引起了我的兴趣,让我得到了这个问题。是否需要会话cookie?

  • 我的网站是否只能将会话仅存储在服务器中而不使用Cookie?

这是我删除cookie的方式。通知counter值为69。

datatable documentation for clear()

然后F5

Deleting the cookie

2 个答案:

答案 0 :(得分:0)

cookie就在那里,以便客户端可以告诉服务器哪个会话文件是他们的。 cookie值对应于在服务器上创建的文件。

没有它,服务器只会为客户端创建一个新的会话文件,显然上一个请求中的数据都不会存在。

我只能想象你没有正确删除cookie。

答案 1 :(得分:0)

  

访问您网站的访问者被分配了一个唯一的ID,即   所谓的会话ID。这可以存储在用户的cookie中   在URL中传播或传播。

  • 同时使用会话和cookie是上面的引用

简而言之:没有cookie,客户将成为一个奇怪的访客