session实现机制_如何理解php session运行机制
php session运行机制就是客户端将session id传入到服务器中,服务器再根据session id找到对应的文件并将其反序列化得到session值,然后保存的时候先序列化再写入今天将要分享的知识点是PHP中的会话运行机制,对于熟悉PHP的开发者来说并不陌生,但是对于刚入门的来说就不是很理解了。接下来在文章中将为大家详细介绍PHP中的session运行机制,具有一定的参考作用,希望对大家有所帮助
PHP session运行机制含义:
PHP session 运行机制就是客户端将session id传递到服务器,服务器根据session id找到对应的文件,读取的时候对文件内容进行反序列化就得到session的值,保存的时候先序列化再写入
PHP session机制分类
在PHP中session有两种机制,分别为默认机制和由用户自定义session处理机制。
默认机制
php.ini配置:
session.save_handler = files
是用磁盘文件来实现PHP会话,它有以下几部分组成:
session_start()
session_start()是session机制的开始,它具有一定概率开启垃圾回收。这个概率是根据php.ini的配置决定的,因为在有的系统中session.gc_probability = 0,即概率是0,这时就不具备垃圾回收
为$_session赋值
添加一个新值只会维持在内存中,当脚本执行结束的时候,把$_session的值写入到session_id指定的文件夹中,然后关闭相关资源。这个阶段有可能执行更改session_id的操作,比如销毁一个旧的session_id,生成一个全新的session_id。这一般用在自定义session操作
例:
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(),'',time() -42000,'/');//旧session cookie过期
}
session_regenerate_id();//这一步会生成新的session_id
//session_id()返回的是新的值
写入session操作
在脚本结束的时候会执行session写入操作,把$_session中的值写入到session_id命名的文件中,可能已经存在,可能需要创建新的文件。
销毁session
session发出去的cookie一般是即时cookie,保存在内存中,当浏览器关闭后,才会过期,但是如果只是想退出登录,而不是关闭浏览器,那么就需要在代码里销毁session,方法有很多。
例:
1. setcookie(session_name(),session_id(),time() -8000000,..);//退出登录前执行
2. usset($_SESSION);//这会删除所有的$_SESSION数据,刷新后,有COOKIE传过来,但是没有数据。
3. session_destroy();//这个作用更彻底,删除$_SESSION 删除session文件,和session_id
用户自定义session处理机制
php.ini配置
session.save_handler = user
用户自定义处理机制可分为以下几部分
session_start()
执行open($save_path,$session_name)语句打开session操作句柄
执行read($id)从中读取数据
注意:$save_path在此情况下直接返回true
脚本执行结束
执行write($id,$sess_data)语句
销毁session
需要注意如果用户需要销毁session则要先执行destroy再执行第2步
session实现机制_如何理解php session运行机制相关推荐
- serversocket 返回浏览器图片_深入理解浏览器的缓存机制
戳蓝字「前端技术优选」关注我们哦! 一.前言 缓存可以说是性能优化中简单高效的一种优化方式了.一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽 ...
- java异常机制_全面理解java异常机制
在理想状态下,程序会按照我们预想的步骤一步一步的执行,但是即使你是大牛,你也不可避免出错,所以java为我们提供了异常机制.本文将会从以下几个方面介绍java中的异常机制: 异常机制的层次结构 异常的 ...
- tensorflow计算图_简单谈谈Tensorflow的运行机制
1 前言 由于Tensorflow采用了全新的静态图设计模式,所以其运行机制与我们脑中所熟悉的动态图有着截然不同之处.TensorFlow翻译成中文就是张量流,所以TensorFlow至少代表着两个概 ...
- mysql 锁机制 mvcc_轻松理解MYSQL MVCC 实现机制
轻松理解MYSQL MVCC 实现机制 轻松理解MYSQL MVCC 实现机制 #### 1. MVCC简介 ##### 1.1 什么是MVCC MVCC是一种多版本并发控制机制. ##### 1.2 ...
- 双亲委派机制_面试官:双亲委派机制的原理和作用是什么?
说到双亲委派机制,就必须要先要弄清楚Java的类加载器 什么是类加载器 Java类加载器(ClassLoader)是Java运行时环境(JRE)的一部分,负责动态的将Java类加载到Java虚拟机的内 ...
- 理解MATLAB GUI运行机制01--gui_mainfcn函数、GUI数据管理机制
声明:本文内容参考<MATLAB GUI设计学习手记> 从这篇博文开始,不打算废话了,直接上干货! gui_mainfcn函数 上篇博文对gui_mainfcn函数一带而过,本篇博文从这个 ...
- 通过源码简要分析之Android消息机制Handler、Looper、MessageQueue运行机制
用了许久的Handler,对于Handler的使用确实是比较熟悉,但是具体内部是如何运作的,却只是模糊的.Handler发出的消息怎么到达MessageQueue?MessageQueue的数据怎么被 ...
- cookie session token区别_彻底理解cookie,session,token
点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者: 墨颜丶 cnblogs.com/moyand/p/9047978.html 发展史 ...
- max点缓存烘焙帧_深入理解浏览器的缓存机制
一.前言 缓存可以说是性能优化中简单高效的一种优化方式了.一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷. 对于一个数据请求来说,可 ...
最新文章
- 11大Java开源中文分词器的使用方法和分词效果对比
- 打工人到什么状态,就可以离职了?
- 使用Linux服务器搭建个人深度学习环境
- “iloveyou88”比“ilovekale”好猜解的多
- cmder添加到系统变量中_开发环境搭建之VSCode、Cmder
- 泛型(比较杂 后期整理)
- Hadoop的SequenceFile读写实例
- java shp文件_Java读取工作空间下所有shp文件名
- 查看linux电脑内存free命令,Linux free命令查看内存状态
- 2014年计算机应用文摘,2014年江西信息技术高考试卷Word版
- linux创建添加用户脚本,Linux 脚本之用户创建
- 用一套键鼠控制两台主机
- Rhino(犀牛)的视口
- 49次全国计算机以及靠,第49次全国计算机等级考试(国考)证书领取的通知
- 如何在html中做超链接,如何在HTML上做一个超链接?
- vue项目出现错误component lists rendered with v-for should have explicit keys
- 十六进制转十进制数算法
- migo初始化库存 s4_货物移动_初始化库存(MvT561)
- 自己制作的 macOS Mojave 10.15.3 iso 文件,亲测可用(附 VMware15 安装 macOS Catalina 图文教程与 macO Catalina.iso 镜像下载地址)
- 这几个图片工具请收藏好,能够解决大家拼图需求
热门文章
- 安装kickstart失败
- java响应很慢排插_服务响应时间慢:Java SecureRandom和/ dev / random - java
- java和node.js 2018_node.js在2018年能继续火起来吗?我们来看看node.js的待遇情况
- JS之返回字符串最后出现的位置lastIndexOf
- 神经稀疏体素场论文笔记
- angular2 路由ajax,如何通过Javascript函数在Angular 2中实现AJAX
- mysql操作数据库
- PHP.ini 中的session 相关设置
- 微信小程序运行报错---invoke event
- luogu4462 异或序列