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 相关文章推荐
PHP5在Apache下的两种模式的安装
Sep 05 PHP
用PHP实现验证码功能
Oct 09 PHP
强烈推荐:php.ini中文版(1)
Oct 09 PHP
PHP MSSQL 存储过程的方法
Dec 24 PHP
php fckeditor 调用的函数
Jun 21 PHP
PHP在引号前面添加反斜杠(PHP去除反斜杠)
Sep 28 PHP
php ZipArchive压缩函数详解实例
Nov 06 PHP
thinkphp数据查询和遍历数组实例
Nov 28 PHP
php实现的网络相册图片防盗链完美破解方法
Jul 01 PHP
PHP在线调试执行的实现方法(附demo源码)
Apr 28 PHP
PHP计算近1年的所有月份
Mar 13 PHP
php使用curl_init()和curl_multi_init()多线程的速度比较详解
Aug 15 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
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
多php服务器实现多session并发运行
2006/10/09 PHP
php 分库分表hash算法
2009/11/12 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
2018/05/23 PHP
Yii框架响应组件用法实例分析
2019/09/04 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
2021/03/09 PHP
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
json2.js的初步学习与了解
2011/10/06 Javascript
js中判断Object、Array、Function等引用类型对象是否相等
2012/08/29 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
JS实现超简单的汉字转拼音功能示例
2016/12/22 Javascript
Bootstrap3 图片(响应式图片&图片形状)
2017/01/04 Javascript
JSON对象转化为字符串详解
2017/08/11 Javascript
详解wow.js中各种特效对应的类名
2017/09/13 Javascript
基于axios封装fetch方法及调用实例
2018/02/05 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
Python实现备份MySQL数据库的方法示例
2018/01/11 Python
Python实现使用request模块下载图片demo示例
2019/05/24 Python
python与C、C++混编的四种方式(小结)
2019/07/15 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
详解Python 循环嵌套
2020/07/09 Python
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
亚马逊中国官方网站:amazon.cn
2017/05/25 全球购物
土耳其玩具商店:Toyzz Shop
2019/08/02 全球购物
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
应届生的求职推荐信范文
2013/11/30 职场文书
财务管理专业求职信
2014/06/11 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
python使用openpyxl库读写Excel表格的方法(增删改查操作)
2021/05/02 Python
Python OpenCV超详细讲解基本功能
2022/04/02 Python
python小型的音频操作库mp3Play
2022/04/24 Python
Go gorilla/sessions库安装使用
2022/08/14 Golang