引入
最近遇到cookie在本页面设置后,当前页面无法获取的问题,通过学习了解到cookie的生成流程,终于让LZ了解到其中的原因。下面讲述setcookie刷新后生效的原因。
实验
首先,设置一个Cookie
<?php
setcookie('a','aaa',time()+3600,'/');
echo $_COOKIE['a'];
?>
下面我们来看看,当
首次(当前页面)
访问
此页面时,会报错:
分析
那么为什么会报Undefined错误呢
①首次访问【未刷新】
我们来看看首次访问时页面响应头信息,发现
[响应头信息]中增加Set-Coookie参数,但[请求头信息]中没有Cookie参数
②>1次访问[刷新过]
我们来看第二次访问时页面显示结果:
发现Cookie的值显示在了页面上。这时我们再来看看[响应头]和[请求头]信息,此时请求头信息中多了参数Cookie
总结Cookie设置生效过程
当我们首次访问设置Cookie的页面时,服务器会把设置的Cookie值通过响应头发送过来,告诉浏览器将cookie存储的本地相应文件夹中(注意:第一次访问时本地还没有存储Cookie,所以此时获取不到值);
当第二次访问(或在进行cookie设置后,过期前所有的访问)时,请求头信息你中都会把Cookie值携带。
下面用图片更加形象的演示Cookie设置生效过程
总结完毕!最后以LZ阅读积累的至理名言结尾!!!