https://segmentfault.com/q/1010000004152987?_ea=550732
$_COOKIE变量是通过读取cookie文件来取得cookie的值吗?
sunshineuuc 2015年12月16日提问 · 2015年12月30日更新
- 5 关注
- 0 收藏,899 浏览
0
$_COOKIE变量是通过读取cookie文件来取得cookie的值吗?将cookie文件删除后为什么$_COOKIE变量的值还存在呢?
5个回答
4
cookie的产生流程是这样的:服务端设置cookie后,返回给浏览器端,浏览器会将cookie保存在客户端本地,浏览器每次向服务端的http请求,都会带上这个cookie,若客户端删除cookie,则发送给服务端的请求中的cookie就是空的,可以观察下浏览器控制台的requuest_header 中的Cookie 字段
hi393 声望
0
session_start();
var_dump($_COOKIE);
上面两行代码就开启了会话了。打开chrome开发者模式
那么我试着把cookie干掉
新的会话。一个sessionID 可以认为是一个会话
会话之间是没啥关系的
还有 $_COOKIE
这个是系统变量。可百度PHP系统变量。好几个,每个变量是存什么的,有什么分工和职责,这个可以去探究下。
Lowky2.8k 声望
0
是用户request的header头中的,每次请求都会带上的,
吉他谱点我网77 声望
0
严格来说不是通过读取文件。
浏览器发送请求的时候会把cookie包含在请求头里:
然后服务器端解析这个Cookie头,并存到$_COOKIE变量里。
不过不知道你所谓的删除cookie文件具体是怎么操作的。因为cookie文件被删除了,相当于cookie被清空了,这时候理论上浏览器立刻发送请求时,$_COOKIE应该为空。
icyfire813 声望
0
前端可以设置cookie值,发送http请求时,将带上cookie值发送给服务器端
服务端通过读取http请求的头信息,进行记录或进行数据验证,或设置新的cookie
客户端拿到HTTP请求的回复后,会把cookie值通过set-cookie带回
浏览器再把cookie保存到本地cookie文件中~~~
删除本地的cookie文件,并不意味着发送请求的时候没有cookie信息,取决于前端是否针对本次请求是否设置了cookie如果设置过了,请求的时候还是会带上发送给服务器,服务器还是能收到~~~
kikong15.8k 声望