细说session和cookie会话控制
本篇文章讲述了session和cookie会话控制,大家对session和cookie会话控制不了解的话或者对session和cookie会话控制感兴趣的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧
对于一个前端开发者,cookie我想大家都不陌生,经常会封装一些诸如setcookie,getcookie的方法,session就好像一个最熟悉的陌生人一样,在我们与后端开发者合作项目的时候会用到它,但是不理解它的本质,下面我们就来详细探讨下
cookie
存储位置:存储于客户端
作用:本域跨页面存储数据(我们似乎一般都用来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之间的通信。
相关推荐:
以上就是细说session和cookie会话控制的详细内容,更多请关注其它相关文章!
上一篇: Python教程之全局变量用法
下一篇: JS实现实时显示时间
推荐阅读
-
PHP中Session和Cookie是如何操作的
-
浅谈COOKIE和SESSION区别
-
PHP cookie与session会话基本用法实例分析
-
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
-
ThinkPHP的cookie和session冲突造成Cookie不能使用的解决方法
-
php中如何同时使用session和cookie来保存用户登录信息
-
PHP中cookie和session的区别实例分析
-
HTML5 Web缓存和运用程序缓存(cookie,session)
-
关于session和cookie的简单理解
-
thinkphp中session和cookie无效的解决方法