Session的工作方式


Posted in PHP onOctober 09, 2006

下面我们来看一下Session是如何工作的。不知你是否知道通过Cookie来实现身份认证的吧。首先生成一个独一无二的Cookie作为用户身份的标志,并在数据库中进行注册。然后通过用户传递来的Cookie和数据库中注册的Cookie进行对照以确定用户的身份。
  Session的工作原理也是这样。
  首先,PHP为建立Session的用户产生一个独一无二的字符串,用来标志这个用户的session。一般将这个字符串称作Session Id。然后“sess”+Session Id为文件名(例如一个Session ID为111,那么文件名为sess_111)在服务器的文件系统中建立一个文件,在文件中保存用户在Session所定义的全局变量的变量名和值。然后再将Session Id作为一个名为PHPSession的Cookie保存在用户端的文件系统中。
  然后,当用户再次连接服务器访问一个PHP脚本时,PHP从用户发来的PEESession这个Cookie中得到用户所在Session的Session Id,并根据Session Id从服务器的文件系统中保存Session信息的文件。最后从这个文件中读出用户在上次连接时所设置的全局变量的值。
  因此,我们可以看到Session的工作原理和我们上一节所介绍的身份认证的工作原理是一样的。所不同的只是Session将信息保存在了服务器的文件系统中,而我们将信息保存在了数据库中。当然使用Session好处就是数据的保存和获取是由PHP自动完成的,而直接使用Cookie的话就需要自己动手进行数据的保存和获取。
  Session利用Cookie的身份标志功能,将用户在浏览网站时需要保存的信息保存在服务器上。这样Session既克服了HTTP协议的缺陷,又防止了信息的泄漏,而且方便了编程者的使用,是一个非常好的解决方案。不过,Session的功能只有PHP4支持,PHP3是不支持Session的。因此使用PHP3进行网站构建的读者只能采用直接使用Cookie的方式。

PHP 相关文章推荐
生成缩略图
Oct 09 PHP
使用PHP socke 向指定页面提交数据
Jul 23 PHP
php查看session内容的函数
Aug 27 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
May 26 PHP
Codeigniter操作数据库表的优化写法总结
Jun 12 PHP
PHP实现图片裁剪、添加水印效果代码
Oct 01 PHP
php天翼开放平台短信发送接口实现方法
Dec 22 PHP
php猴子选大王问题解决方法
May 12 PHP
开启PHP Static 关键字之旅模式
Nov 13 PHP
Laravel配置全局公共函数的方法步骤
May 09 PHP
PHP INT类型在内存中占字节详解
Jul 20 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 PHP
用Flash图形化数据(一)
Oct 09 #PHP
PHP中Session的概念
Oct 09 #PHP
虚拟主机中对PHP的特殊设置
Oct 09 #PHP
用Flash图形化数据(二)
Oct 09 #PHP
用php来检测proxy
Oct 09 #PHP
如何将一个表单同时提交到两个地方处理
Oct 09 #PHP
PHP制作图型计数器的例子
Oct 09 #PHP
You might like
php实现微信公众号无限群发
2015/10/11 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
浅谈PHP正则中的捕获组与非捕获组
2016/07/18 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
?牟┛途W扣了一??效果出?? target=
2007/05/27 Javascript
ajax的hide隐藏问题解决方法
2012/12/11 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
Node.js插件的正确编写方式
2014/08/03 Javascript
3种Jquery限制文本框只能输入数字字母的方法
2014/12/03 Javascript
使用Plupload实现直接上传附件至七牛云存储
2014/12/26 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
spring+angular实现导出excel的实现代码
2019/02/27 Javascript
vue实现路由监听和参数监听
2019/10/29 Javascript
微信小程序跨页面传递data数据方法解析
2019/12/13 Javascript
js实现自动播放匀速轮播图
2020/02/06 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
2020/08/10 Javascript
[05:23]DOTA2-DPC中国联赛2月1日Recap集锦
2021/03/11 DOTA
Python中bisect的用法
2014/09/23 Python
基于numpy中数组元素的切片复制方法
2018/11/15 Python
可能这些是你想要的H5软键盘兼容方案(小结)
2019/04/23 HTML / CSS
波兰品牌鞋履在线商店:Eastend.pl
2020/01/11 全球购物
Kickers鞋英国官网:男士、女士和儿童鞋
2021/03/08 全球购物
企划主管岗位职责
2013/12/12 职场文书
高中政治教学反思
2014/01/18 职场文书
竞选班长自荐书范文
2014/03/09 职场文书
捐款倡议书怎么写
2014/05/13 职场文书
公司活动总结范文
2014/07/01 职场文书
停车位租赁协议书
2014/09/24 职场文书
工商局领导班子存在的问题整改措施思想汇报
2014/10/05 职场文书
2015年公司保安年终工作总结
2015/05/14 职场文书
爱护公物主题班会
2015/08/17 职场文书
浅谈JS的原型和原型链
2021/06/04 Javascript
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android
漫画《催眠麦克风-Dawn Of Divisions》第二卷PV公开
2022/04/05 日漫