zoukankan      html  css  js  c++  java
  • session(1)

    http是无状态的,如果需要在多个链接间共享数据,就要在服务器上一个可共享的全局位置,保存可在多个链接间反复使用的状态和数据。

    PHP中,session是服务器内存中一个关联数组对象,

    session允许将数据存储在web服务器上,从而在整个用户会话过程中保持任何数据。

    用户会话是指用户在浏览某个网站时,从进入网站到关闭浏览器所经过的这段时间。

    session只会在首次使用服务器端编程语言访问session时,才会创建。

    一 session的生命周期

    1.打开新浏览器窗口,首次请求服务器时,浏览器就与服务器建立了session,服务器自动给客户端分配一个唯一的标识(sessionid)被存储于客户端本地的cookie中。

      注意:从当前浏览器窗口打开的新链接,不再建立新session,而是和第一个打开的窗口公用一个session。

    2.当PHP中调用session_start()函数时,服务器会根据请求中携带的sessionId,从session仓库中加载已经存储的对应sessionId的session对象到内  存

    3.当执行PHP脚本时,可用如下方式注册session变量

    session_start();
    $_SESSION["变量名"]=值;   //同关联数组
    

     4.当PHP脚本执行结束时,未被销毁的session变量会被临时自动保存到服务器本地的一个指定路径下的session库中暂存,本次浏览过程中,再次需要访问session中保存的数据时,还可以从session库中加载回内存中使用

      这个路径可由php.ini文件中的session.save_path指定

    5.只要页面有提交活动,则session的所有项都会保持

    6.session失效:

      页面在1440s,也就是24分钟后没有任何提交活动时,session会失效。session内存储的多个数据项是整体失效的。(如在php.ini默认配置session.gc_maxlifetime修改)

      或者关闭浏览器窗口,sessionID自动注销,也会导致session失效

      下次打开窗口,请求服务器时,重新建立新的session,分配新的sessionId。

      

    7.会话时间段

      一次会话时间段,是指一个特定的用户,访问一台特定的服务器,并且不间断操作所持续的时间。

      两个用户同一时间段访问同一台服务器,是两个不同的sessionid

      一个用户,关闭浏览器后再次访问同一台服务器,session时间段与关闭前的访问毫无关系

    问题:如果客户端关闭浏览器,服务器端不会立刻释放session的,因为当浏览器关闭时,服务器端是不知道的。

    所以:session实际存活时间,等于用户连续操作的时间+session过期时间。

      

  • 相关阅读:
    智能资产构建去中心化的资产管理系统
    以太坊—开放的智能合约完整解决方案
    去中心化的域名系统Namecoin
    bootstrap-内联文本元素-小号文本
    MySQL重新初始化安装数据库
    MySQL重新初始化安装数据库
    MySQL重新初始化安装数据库
    MySQL重新初始化安装数据库
    PHP模拟登录并获取数据
    PHP模拟登录并获取数据
  • 原文地址:https://www.cnblogs.com/codexlx/p/12503313.html
Copyright © 2011-2022 走看看