PHP中Session原理以及和Cookie的关系



echo 'test';

就这样一个简单的php文件,我们来查看cookie的变化。
PHP中Session原理以及和Cookie的关系_第1张图片
打开浏览器调试工具后,先清除之前的cookie,然后反复刷新页面,发现都没有新的cookie。

我们把test.php 代码修改如下:



session_start();

再去浏览器调试工具里查看有没有cookie?
PHP中Session原理以及和Cookie的关系_第2张图片
可以看到,现在就有了(反复刷新浏览器,value值也不变化)。

思考: 我们没有在代码中做任何cookie的操作,为什么会生成cookie呢?

我们再修改test.php的代码如下:



//session_start();

if (!isset($_COOKIE['CLIENT_ID'])){  //如果没有就设置
    setcookie('CLIENT_ID',uniqid());
}

通过浏览器调试工具,我们发现这样实现了和session_start() 类似的功能。
PHP中Session原理以及和Cookie的关系_第3张图片

其实session的原理,就是利用cookie在把信息保存在了本地(windows系统的temp目录中),做到了同一个域内共享。
如果禁用了cookie,那么session也用不了。

你可能感兴趣的:(PHP)