以下我以php为例,万变不离其宗,希望对大家都有用吧。

session与cookie:

了解过两者的众所都知道,有些信息保存到cookie,有些出于安全问题就不能直接存到浏览器,这就要用到session了。然而对于浏览器,一般都是默认20-30分钟自动销毁或者关闭浏览器就会销毁。这显示是很头疼的事情,比如我们要实现用户登陆功能,关闭浏览器就要重新登陆,这搞什么鬼?所以我们要去试图改变它们。网上众说纷纭,你可以选择去修改默认配置文件,如php为例,修改php.ini的函数。但是染念却不喜欢修改修改默认,也在网上看到某些程序员是没有权限修改的,所以我们需要做到如何不修改默认文件达到这样的功能。

我们可能在网上看到这样的一例子:

$lifeTime = 24 * 3600;

session_set_cookie_params($lifeTime);

1.通过cookie的有效时间来设置session,我想说,这只是一部分,因为设置cookie有效期没有错,但是你没有传值,怎么达到修改session的生存时间呢。

2.虽然在你执行了一次后,真的session是24小时了,但是当你关闭浏览器后,再打开,session仍然还是需要你重新输入,因为浏览器找不到你的session的id啊...

如何设置session的生存时间呢?要做的就是把session传给cookie,由cookie给我们保存:

session_start();

isset($PHPSESSID) ? session_id($PHPSESSID) : $PHPSESSID = session_id();

setcookie('PHPSESSID', $PHPSESSID, time()+86400, "/");PHP session工作原理 以下以cookie传输PHPSESSID描述。客户端请求一个php的服务端地址。

服务端收到请求,此次php脚本中包含session_start()。

服务端会生成一个PHPSESSID。(默认session存储方式为session.save_handler=files,文件形式存储。生成的session文件名规则即为sess_PHPSESSID,session文件存在session.save_path中。)

服务端响应首部Response Headers:Set-Cookie:PHPSESSID=37vjjasgjdv2ouk1uomhgqkv50;

path=/。在客户端生成一个cookie保存此PHPSESSID。此时,客户端的cookie里面包含了PHPSESSID,之后客户端的每次请求首部Request Headers:Cookie:PHPSESSID=37vjjasgjdv2ouk1uomhgqkv50。服务端之后每次接收到客户端的请求就都能根据这个PHPSESSID来找到服务端的session文件,通过对这个session文件的读写操作即实现了session的超全局变量属性。

如果客户端禁用了cookie,由于无法使用cookie传递PHPSESSID,那么客户端每次请求,服务端都会重新建立一个session文件,而无法通过通过PHPSESSID来重用session文件,所以session也就失效了。

这种情况可以设置session.use_trans_sid来传输PHPSESSID,具体实现方式与cookie的区别就是将PHPSESSID通过HTTP的GET传输。每次请求的地址里面都会补全PHPSESSID参数”url?PHPSESSID=37vjjasgjdv2ouk1uomhgqkv50”来实现。

顾名思义,phpsessid就是当前会话id,session_id($PHPSESSID)达到当前会话,不然没存在,就要建立一个。然后再通过设置cookie(其实你打开看cookie,就是有PHPSESSID存在,而我们修改了它的存在时间而已),这样我们才能实现session在你想要的时间内过期,即使浏览器关闭了。

php修改session生存时间,修改session的过期(生存)时间相关推荐

  1. php session 修改,php session 如何修改,

    php session 如何修改如何修改PHP会话,php session的修改是会话数据的增加,其修改方式是:首先通过"session_start"保存会话数据:然后传递&quo ...

  2. PHP SESSION生存时间设置

    PHP SESSION生存时间设置     PHP中的session有效期默认是1440秒(24分钟)[weiweiok注:php5里默认的是180分],也就是说,客户端超过24分钟没有刷新,当前se ...

  3. 使用ALTER USER命令修改用户的密码、密码过期,锁定,解锁

    使用ALTER USER命令可以用来修改用户的口令,设置口令过期,锁定以及解锁用户等等. 1.修改用户的口令,将用户的口令修改为新的密码 ALTER USER SCOTT IDENTIFIED BY  ...

  4. session传递参数_分布式 Session 之 Spring Session 架构与设计

    作者 | 李增光 杏仁后端工程师.「只有变秃,才能变强!」 ​前言 开始进行 Web 开发时,我们可能会遇到这样的情况,当服务器重启之后,之前的登录状态会失效需要重新登录.又或者你的应用程序部署了不止 ...

  5. 深度实现session【包括session入库、session机制和session和cookie的使用方法,完善会话机制(在分布式机器中也能使用)】、无限分类的实现...

    1.session的注意点: @session_start();//这个配置需要注意,session开启中会有影响,所以使用错误抑制符进行限制[并且使用php.ini对session进行自动开启] s ...

  6. 服务器端Session和客户端Session, 以及cookie的区别

    Session其实分为客户端Session和服务器端Session. 当用户首次与Web服务器建立连接的时候,服务器会给用户分发一个 SessionID作为标识.SessionID是一个由24个字符组 ...

  7. Spring Session Redis实现Session共享

    Spring Session & Redis实现Session共享 前后端分离Session.单点登录实现 Session 共享简单方案,充当笔记 一.Session和Cookie 1.Ses ...

  8. 服务器端Session、客户端Session和Cookie的区别

    1.Session其实分为客户端Session和服务器端Session. 当用户首次与Web服务器建立连接的时候,服务器会给用户分发一个 SessionID作为标识.SessionID是一个由24个字 ...

  9. Session分布式共享 = Session + Redis + Nginx

    一.Session 1.Session 介绍 我相信,搞Web开发的对Session一定再熟悉不过了,所以我就简单的介绍一下. Session:在计算机中,尤其是在网络应用中,称为"会话控制 ...

最新文章

  1. vue 之 sass
  2. The NVIDIA driver on your system is too old (found version 10000). Please update your GPU driver by
  3. php打印预览jquery,JS实现浏览器打印、打印预览示例
  4. 另一种“人老心不老”
  5. VC线程同步技术剖析
  6. [实战]挖掘CSRF姿势
  7. JavaWeb开发Servlet学习
  8. 2019国内高端智能云呼叫中心系统,让简单的工作变得更有值得
  9. sqlbulkcopy是覆盖式更新吗_酒店无线覆盖解决方案,一文了解清楚
  10. 机械制造技术基础【4】
  11. linux 光纤网卡 软路由,联想M720Q、光网卡、Pon stick、Openwrt我的完美软路由折腾记...
  12. 机器学习笔记 - 深度学习的预处理和图像白化
  13. Capture One使用的几个小技巧
  14. mysql cve 扫描工具_数据库漏洞扫描
  15. LVS+PIRANHA测试
  16. 树莓派WEB服务器(Boa)CGI编程入门
  17. 【超全超详细】2W字零基础黑客学习路线,知识体系(附学习路线图)
  18. ARM中的字、半字、字节是多少位?
  19. Alpha 测试与 Beta 测试:有什么区别?
  20. filecoin lotus 图形化测试平台pond

热门文章

  1. 任务调度及远端管理(基于Quartz.net)
  2. Bootstrap 排版
  3. Python 练习册,每天一个小程序
  4. 计算机类产品评价技术指标体系研究之图形(像)篇
  5. C2审核模式(c2 audit mode)
  6. Oracle Buffer Cache的keep、recycle、default pool概念图解
  7. RHE5服务器配置——Samba服务器
  8. 208. 实现 Trie (前缀树)
  9. Python学习_字符串格式化
  10. javascript高级程序设计---js事件思维导图