zoukankan      html  css  js  c++  java
  • 深入了解session

    session

    • 为了解决在多个请求的页面之间的关联,让多个页面都能读取到某个信息,存在于服务端

    运行机制:
    • 首先如果通过session.start()开启session后,此时会自动生成session_id,用来标识此次是哪个用户在访问

    • 同时会自动向cookie中写入一个名为PHPSESSID的变量,值为session_id,若此次会话没有结束,再次访问时,服务器会读取这个PHPSESSIDcookie是否过期是否有值,如果有则使用;没有会重新生成一个session_id,然后再生成PHPSESSID这个cookie

    • 存储数据:会以sess_前缀 + session_id的形式存在服务器的临时目录中,每生成一个session_id就会新生成一个文件

    • 写入数据:序列化写入,当读取session变量时,先会读取cookie中的PHPSESSID,获取session_id,然后根据这个查找文件获取对应的数据

    • SID是一个系统常量,包含着会话名以及会话ID的常量,如果会话ID已经在cookie中存在的则SID为空

    session的配置

    session.save_handler = files:表示session的存储方式,默认为文件方式

    session.save_path:保存路径

    session.use_cookies:默认值为1,表示会在浏览器创建cookie.。。,

    session.name = PHPSESSID:设置cookie中保存session_id的属性名

    session.auto_start = 0:设置是否默认开启session,默认不开启

    session.cookie_lifetime = 0:设置cookie过期时间

    垃圾回收机制:
    • 代码处理

    • 使用session配置:

      session.gc_probability /session.gc_divisor
      //会话初始时启动gc(garbage collection)的概率,session.gc_divisor默认为100

      session.gc_maxlifetime // 当超过设置时间未调用,就会被认为是垃圾文件
  • 相关阅读:
    微信小程序开发--页面之间的跳转
    iOS基础UI控件介绍-Swift版
    iOS技术栈-Swift版
    SpringBoot实战(四)获取接口请求中的参数(@PathVariable,@RequestParam,@RequestBody)
    SpringBoot实战(三)代码热部署
    SpringBoot实战(二)Restful风格API接口
    SpringBoot实战(一)HelloWorld
    Spring Boot浅谈(是什么/能干什么/优点和不足)
    CentOS的基本设置界面
    虚拟机VM安装Linux系统CentOS7
  • 原文地址:https://www.cnblogs.com/ashen1999/p/12673315.html
Copyright © 2011-2022 走看看