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运行机制相关推荐

  1. serversocket 返回浏览器图片_深入理解浏览器的缓存机制

       戳蓝字「前端技术优选」关注我们哦! 一.前言 缓存可以说是性能优化中简单高效的一种优化方式了.一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽 ...

  2. java异常机制_全面理解java异常机制

    在理想状态下,程序会按照我们预想的步骤一步一步的执行,但是即使你是大牛,你也不可避免出错,所以java为我们提供了异常机制.本文将会从以下几个方面介绍java中的异常机制: 异常机制的层次结构 异常的 ...

  3. tensorflow计算图_简单谈谈Tensorflow的运行机制

    1 前言 由于Tensorflow采用了全新的静态图设计模式,所以其运行机制与我们脑中所熟悉的动态图有着截然不同之处.TensorFlow翻译成中文就是张量流,所以TensorFlow至少代表着两个概 ...

  4. mysql 锁机制 mvcc_轻松理解MYSQL MVCC 实现机制

    轻松理解MYSQL MVCC 实现机制 轻松理解MYSQL MVCC 实现机制 #### 1. MVCC简介 ##### 1.1 什么是MVCC MVCC是一种多版本并发控制机制. ##### 1.2 ...

  5. 双亲委派机制_面试官:双亲委派机制的原理和作用是什么?

    说到双亲委派机制,就必须要先要弄清楚Java的类加载器 什么是类加载器 Java类加载器(ClassLoader)是Java运行时环境(JRE)的一部分,负责动态的将Java类加载到Java虚拟机的内 ...

  6. 理解MATLAB GUI运行机制01--gui_mainfcn函数、GUI数据管理机制

    声明:本文内容参考<MATLAB GUI设计学习手记> 从这篇博文开始,不打算废话了,直接上干货! gui_mainfcn函数 上篇博文对gui_mainfcn函数一带而过,本篇博文从这个 ...

  7. 通过源码简要分析之Android消息机制Handler、Looper、MessageQueue运行机制

    用了许久的Handler,对于Handler的使用确实是比较熟悉,但是具体内部是如何运作的,却只是模糊的.Handler发出的消息怎么到达MessageQueue?MessageQueue的数据怎么被 ...

  8. cookie session token区别_彻底理解cookie,session,token

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者: 墨颜丶 cnblogs.com/moyand/p/9047978.html 发展史 ...

  9. max点缓存烘焙帧_深入理解浏览器的缓存机制

    一.前言 缓存可以说是性能优化中简单高效的一种优化方式了.一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷. 对于一个数据请求来说,可 ...

最新文章

  1. 11大Java开源中文分词器的使用方法和分词效果对比
  2. 打工人到什么状态,就可以离职了?
  3. 使用Linux服务器搭建个人深度学习环境
  4. “iloveyou88”比“ilovekale”好猜解的多
  5. cmder添加到系统变量中_开发环境搭建之VSCode、Cmder
  6. 泛型(比较杂 后期整理)
  7. Hadoop的SequenceFile读写实例
  8. java shp文件_Java读取工作空间下所有shp文件名
  9. 查看linux电脑内存free命令,Linux free命令查看内存状态
  10. 2014年计算机应用文摘,2014年江西信息技术高考试卷Word版
  11. linux创建添加用户脚本,Linux 脚本之用户创建
  12. 用一套键鼠控制两台主机
  13. Rhino(犀牛)的视口
  14. 49次全国计算机以及靠,第49次全国计算机等级考试(国考)证书领取的通知
  15. 如何在html中做超链接,如何在HTML上做一个超链接?
  16. vue项目出现错误component lists rendered with v-for should have explicit keys
  17. 十六进制转十进制数算法
  18. migo初始化库存 s4_货物移动_初始化库存(MvT561)
  19. 自己制作的 macOS Mojave 10.15.3 iso 文件,亲测可用(附 VMware15 安装 macOS Catalina 图文教程与 macO Catalina.iso 镜像下载地址)
  20. 这几个图片工具请收藏好,能够解决大家拼图需求

热门文章

  1. 安装kickstart失败
  2. java响应很慢排插_服务响应时间慢:Java SecureRandom和/ dev / random - java
  3. java和node.js 2018_node.js在2018年能继续火起来吗?我们来看看node.js的待遇情况
  4. JS之返回字符串最后出现的位置lastIndexOf
  5. 神经稀疏体素场论文笔记
  6. angular2 路由ajax,如何通过Javascript函数在Angular 2中实现AJAX
  7. mysql操作数据库
  8. PHP.ini 中的session 相关设置
  9. 微信小程序运行报错---invoke event
  10. luogu4462 异或序列