深入理解浏览器会话机制(session && cookie)

来源:互联网 发布:淘宝swisse官方旗舰店 编辑:程序博客网 时间:2024/05/17 04:58

对于一个前端开发者,cookie我想大家都不陌生,经常会封装一些诸如setcookie,getcookie的方法,session就好像一个最熟悉的陌生人一样,在我们与后端开发者合作项目的时候会用到它,但是不理解它的本质,下面我们就来详细探讨下

存储位置:存储于客户端
作用:本域跨页面存储数据(我们似乎一般都用来username,password)

cookie一般包含如下图的信息:

这里写图片描述

传输:下面是一条http请求报文

这里写图片描述

在每次发送请求中,cookie都会随着http报文发向后台

cookie和session的关系

这里写图片描述

session

下面我以php语言为用例,讲解session

从上面可以看出session存储于服务器端,而且以文件的形式存储
session有好多特性,比如过期时间等,下面我们查看,打开php.ini文件(里面有php的诸多配置信息,我去除了n多注释)

这里写图片描述

下面我看看具体看看那个sessionID

这里写图片描述

可以看出,这也就与上面那个session.name = “PHPSESSID”不谋而合

我们已经清楚了前台浏览器是如何携带sessionID传输到后台,以及后台存储session文件的位置,那后台具体利用sessionID分析利用呢, 我们接着分析

为了分析机制,请看下面php代码

<?php    session_start();    header("Content-Type: text/html;charset=utf-8");     if ($_SESSION['username'] != 'success') {        /* /php/index.php为当前文件路径 */        $string = <<< EOF            <form action="/php/index.php" method="post">                <input type="text" name="value">                <input type="submit">            </form>EOF;        echo $string;    }    if ($_SESSION['username'] == 'success') {        echo "登录成功".PHP_EOL;    }    if ($_POST['value'] == 'ys') {        $_SESSION['username'] = 'success';        echo "登录成功".PHP_EOL;    }?>

执行了php文件,体验session过程

这里写图片描述

发现http的cookie头部中的sessionID和服务器session文件名一样
这样就能根据每次请求的session找到唯一的session文件,然后看看这个文件是怎么样的

username|S:7:"success";s|S:7:"success";ss|S:7:"success";

这是这个文件的内容,里面有s,ss,username,其中s和ss就是我之前测试的名字(可以忽略),也就是这样

username|S:7:"success";

然后每次后台就能根据sessionID确定唯一会话,设置诸如$_SESSION[‘username’]之类的加以判断,实现cookie之间的通信。

结语

至此,cookie和session之间的关系也就写完了,本文哪里有地方解释不对的,或者有地方需要补充的,欢迎大家留言意见,不胜感激~

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果macbook开不了机怎么办 苹果7震动像拖拉机一样怎么办 win10笔记本玩lol卡怎么办 苹果笔记本密码忘了怎么办 苹果笔记本系统密码忘记了怎么办 qq加好友频繁了怎么办 淘宝买食品有问题怎么办 手机的设置图标没有了怎么办 国家创业贷款还不了会怎么办 手机mac显示:不好使.怎么办? 英雄联盟买皮肤重复怎么办 皮肤很油毛孔又粗怎么办 笔记本电脑玩英雄联盟卡怎么办 win10系统更新不动了怎么办 win7任务栏时间没了怎么办 win10桌面图标都没了怎么办 win10软件图标没了怎么办 电脑内存插板没用了怎么办 win10笔记本开不了机怎么办 cad复制东西变卡怎么办 企业网银证书过期怎么办 游戏更新网页无法正常打开怎么办 网页游戏打开说脚本错误怎么办 电脑玩游戏出现闪屏怎么办 玩游戏时出现窗口化怎么办 玩游戏时出现输入不支持怎么办 电脑玩游戏出现蓝屏怎么办 谷歌商店网页版进不去怎么办 谷歌商店为什么打不开怎么办 玩lol突然卡顿怎么办 手机上路由器管理页面打不开怎么办 苹果电脑开机页面密码打不开怎么办 逆战活动页面打不开怎么办 电脑玩lol网络卡怎么办 ios11.4qq闪退怎么办 ios11.3qq闪退怎么办 英雄联盟进入游戏界面黑屏怎么办 英雄联盟经常未响应怎么办 英雄联盟总是无响应怎么办 英雄联盟新客户端太卡怎么办 win10英雄联盟fps低怎么办