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 相关文章推荐
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
Nov 18 PHP
php中通过smtp发邮件的类,测试通过
Jan 22 PHP
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
Oct 12 PHP
服务器web工具 php环境下
Dec 29 PHP
C/S和B/S两种架构区别与优缺点分析
Oct 23 PHP
php查询mssql出现乱码的解决方法
Dec 29 PHP
微信自定义菜单的处理开发示例
Apr 16 PHP
使用纯php代码实现页面伪静态的方法
Jul 25 PHP
PHP内核探索:哈希表碰撞攻击原理
Jul 31 PHP
php调用云片网接口发送短信的实现方法
Oct 25 PHP
laravel框架中视图的基本使用方法分析
Nov 23 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
Feb 10 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
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
2019/01/17 PHP
javascript不同页面传值的改进版
2008/09/30 Javascript
JS 拼图游戏 面向对象,注释完整。
2009/06/18 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
使用jQuery异步加载 JavaScript脚本解决方案
2014/04/20 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
jquery代码实现多选、不同分享功能
2015/07/31 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
JS中对象与字符串的互相转换详解
2016/05/20 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
2016/08/05 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
JS脚本实现网页自动秒杀点击
2018/01/11 Javascript
在vue中使用setInterval的方法示例
2019/04/16 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
vc6编写python扩展的方法分享
2014/01/17 Python
python的迭代器与生成器实例详解
2014/07/16 Python
python调用新浪微博API项目实践
2014/07/28 Python
python字符串,数值计算
2016/10/05 Python
把pandas转换int型为str型的方法
2019/01/29 Python
python实现快速文件格式批量转换的方法
2020/10/16 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
学习十八大精神心得体会
2013/12/31 职场文书
大学生在校学习的自我评价
2014/02/18 职场文书
党员干部承诺书范文
2014/03/25 职场文书
企业标语口号
2014/06/10 职场文书
药店促销活动总结
2014/07/10 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
世界名著读书笔记
2015/06/25 职场文书
员工保密协议范本,您一定得收藏!很有用!
2019/08/08 职场文书
Python如何利用正则表达式爬取网页信息及图片
2021/04/17 Python
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android