ホームページ >バックエンド開発 >PHPチュートリアル > $_COOKIE变量是通过读取cookie文件来取得cookie的值吗?

$_COOKIE变量是通过读取cookie文件来取得cookie的值吗?

WBOY
WBOYオリジナル
2016-06-06 20:20:461629ブラウズ

$_COOKIE变量是通过读取cookie文件来取得cookie的值吗?
将cookie文件删除后为什么$_COOKIE变量的值还存在呢?

回复内容:

$_COOKIE变量是通过读取cookie文件来取得cookie的值吗?
将cookie文件删除后为什么$_COOKIE变量的值还存在呢?

cookie的产生流程是这样的:服务端设置cookie后,返回给浏览器端,浏览器会将cookie保存在客户端本地,浏览器每次向服务端的http请求,都会带上这个cookie,若客户端删除cookie,则发送给服务端的请求中的cookie就是空的,可以观察下浏览器控制台的requuest_header 中的Cookie 字段

<code>session_start();
var_dump($_COOKIE);</code>

上面两行代码就开启了会话了。打开chrome开发者模式

 $_COOKIE变量是通过读取cookie文件来取得cookie的值吗?

那么我试着把cookie干掉

 $_COOKIE变量是通过读取cookie文件来取得cookie的值吗?

新的会话。一个sessionID 可以认为是一个会话 会话之间是没啥关系的

还有 $_COOKIE 这个是系统变量。可百度PHP系统变量。好几个,每个变量是存什么的,有什么分工和职责,这个可以去探究下。

是用户request的header头中的,每次请求都会带上的,

严格来说不是通过读取文件。

浏览器发送请求的时候会把cookie包含在请求头里:

 $_COOKIE变量是通过读取cookie文件来取得cookie的值吗?

然后服务器端解析这个Cookie头,并存到$_COOKIE变量里。

不过不知道你所谓的删除cookie文件具体是怎么操作的。因为cookie文件被删除了,相当于cookie被清空了,这时候理论上浏览器立刻发送请求时,$_COOKIE应该为空。

前端可以设置cookie值,发送http请求时,将带上cookie值发送给服务器端
服务端通过读取http请求的头信息,进行记录或进行数据验证,或设置新的cookie
客户端拿到HTTP请求的回复后,会把cookie值通过set-cookie带回
浏览器再把cookie保存到本地cookie文件中~~~

删除本地的cookie文件,并不意味着发送请求的时候没有cookie信息,取决于前端是否针对本次请求是否设置了cookie
如果设置过了,请求的时候还是会带上发送给服务器,服务器还是能收到~~~

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。