Session与cookie功能效果相同。Session与Cookie的区别在于Session是记录在服务端的,而Cookie是记录在客户端的。
禁用COOKIE后SEESION还能用吗?
可以,COOKIE和SESSION都是用来实现会话机制的,由于http协议是无状态的,所以要想跟踪一个用户在同一个网站之间不同页面的状态,需要有这么一个机制----会话机制。
COOKIE:将会话信息的保存到浏览器端。
SESSION:将会话信息保存到服务器端。
SESSION默认情况下是基于COOKIE的,对于SESSION来说,每生成一个SESSIONID,都会将其发送到浏览器端,让后将其保存到cookie当中。
如果禁用了COOKIE,则基于COOKIE的SESSION不好使了,我们可以使用get,传递SID,或者直接开启透明的SID(此时需要关闭基于cookie的SESSION配置项)。
php如何修改session生存时间
如何修改SESSION的生存时间?
要注意这里的生存时间指的是什么?
由于session默认是基于cookie的,也就是说使用session会话技术,首先是将session数据保存到服务器端,其次会将sessionID保存到浏览器端,保存在服务器端的session文件生命周期由php.ini中的session.gc_maxlifetime、gc_probability和gc_divisor来决定,而保存在客户端的sessionID由客户端cookie来决定。
默认其生存周期直到浏览器关闭,它也可以通过php.ini中的设置session.cookie_lifetime来控制,二者共同来决定session的生存时间,二者中的其中任意一个失效了,就会造成session失效,要根据自己的需求来决定是要从哪方面来修改其生存时间。
- 参考1:将php.ini中的session.gc_maxlifetime设置为9999重启apache
- 参考2:
$lifeTime=小时*秒;
session_save_path($savePath);
session_set_cookie_params($lifeTime);
session_start();
- 参考3:
session_start();
$lifeTime=24*3600;//保存一天
setcookie(session_name(),session_id(),time()+$lifeTime,"/");
cookie和session的区别
- COOKIE保存在客户端,而SESSION则保存服务器端。
- 从安全性的角度来讲,SESSION的安全性要高。
- 从保存内容的类型的角度来讲,COOKIE只保存字符串(及能够自动转换成字符串),而session则可以保存所有的数据类型。
- 从保存内容的大小的角度来讲,COOKIE保存的内容是有限制的,比较小,而SESSION基本上没有这个限制。
- 从性能的角度来讲,用SESSION的话,对服务器的压力会更大一些。
多台web服务器如何共享SESSION?
可以利用mysql数据库来存储session
设置或读取session之前,需要做什么?(相关题目:使用setcookie函数前,需要注意什么?)
session_start()前面不能有任何输出,包括空行。
(前面不能有任何输出,包括空行。)
网友评论