Cookie与Session交互原理

前言

交互过程是通过一个PHPSESSID进行联系的,PHPSESSID是通过特定的算法生成,包含在HTTP Request 里,客户端和服务端会把PHPSESSID传来传去。

一、cookie具体原理

在这里附上我的test.php代码

    date_default_timezone_set("PRC");
    $name="name";
    $value="yilian";
    $exprire=time()+3600*24;
    setcookie($name,$value,$exprire);
    print_r($_COOKIE);

第一次访问http://120.77.33.183/test.php。
服务器php设置cookie内容 并 通过http-response发送cookie内容到客户端并保存在客户端本地,这时不会显示设置的cookie内容。如下几张图所示:

Cookie与Session交互原理_第1张图片
Paste_Image.png
Cookie与Session交互原理_第2张图片
Paste_Image.png
Cookie与Session交互原理_第3张图片
Paste_Image.png

第二次访问http://120.77.33.183/test.php。
客户端再次发送http请求的时候会将本地的cookie内容添加到http请求头发送给服务器,这时服务器端脚本才可以调用cookie内容。如下所示:

Cookie与Session交互原理_第4张图片
Paste_Image.png

二、session具体原理

session建立的时候,在服务器上会建立一个 sess_name文件 这个name就是PHPSESSID值,这个sess_name文件里面存放的就是这个用户这次会话的所有session有关的 键-值对,一旦用户关闭了浏览器,这个session文件就没用了,下次会话只能重新建立session文件了。

附上我的test.php文件


当用户未关闭此浏览器时,访问这域名下的任意文件,都会带上这个PHPSESSID值,服务器再通过这个PHPSESSID拿到服务器的session中进行比对,靠此来识别不同的用户,如下图所示:

Cookie与Session交互原理_第5张图片
Paste_Image.png
Cookie与Session交互原理_第6张图片
Paste_Image.png
Cookie与Session交互原理_第7张图片
Paste_Image.png

以上就是session和cookie的交互,若有错误,请指正。

你可能感兴趣的:(Cookie与Session交互原理)