Heim >Backend-Entwicklung >PHP-Tutorial > $_COOKIE变量是通过读取cookie文件来取得cookie的值吗?

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

WBOY
WBOYOriginal
2016-06-06 20:20:461629Durchsuche

$_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
如果设置过了,请求的时候还是会带上发送给服务器,服务器还是能收到~~~

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn