PHP之Session与Cookie区别及phpsessid获取
未知
2023-08-23 16:58:26
0次
存放位置
Cookie本身是在浏览器端存放的; Session本身是在服务器端存放的。
安全性
一般不要用 Cookie 保存数据集或其他大量的数据。并非所有的浏览器都支持 Cookie,并且数据信息是以明文文本的形式保存在客户端计算机中,因此最好不要保存敏感的、未加密的数据,否则会影响网络的安全性。
cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。
应用场景
使用 Cookie 能够达到多种目的,所有这些目的都是为了使 Web 站点记住您。例如,一个实施民意测验的站点可以简单地利用 Cookie 作为布尔值,表示您的浏览器是否已经参与了投票,从而避免您重复投票; 而那些要求用户登录的站点则可以通过 Cookie 来确定您是否已经登录过,这样您就不必每次都输入凭据。
Cookie 能够帮助 Web 站点保存有关访问者的信息
cookies适合做保存用户的个人设置、爱好等。记录访客的某些信息。如可以利用 Cookie 记录用户访问网页的次数,或者记录方可曾经输入过的信息。另外,某些网站可以使用 Cookie 自动记录访客上次登录的用户名。
Session适合做客户的身份验证。比如用户名密码、会员ID等等
过期设定
web应用程序可以在操作时,由服务器端代码生成一个Cookie信息保存在客户端的浏览器中,生成一个很小的文件,此时的文件存在RAM运行内存中,如果用户关闭浏览器就会自动删除Cookie信息;
如果程序生成一个带有时间设定的cookie,那么cookie文件将存在物理内存中,下次访问同一个web应用时,在设置时间范围内,web应用仍能获取到cookie信息。
session是放在服务器上的,过期与否取决于服务器的设定,
cookie是存在客户端的,过期与否可以在cookie生成的时候设置进去。
数量和大小限制
Cookie存储的数据在不同的浏览器会有不同的限制,一般在同一个域名下,Cookie变量数量控制在20个以内,每个cookie值的大小控制在4kb以内。
session值没有大小和数量限制,但如果数量过多,会增大服务器的压力。
内容区别
cookie保存的内容是字符串,而服务器中的session保存的数据是对象。
获取浏览器上的phpsessid
$config = Config::get('session');
Session::init($config);
$session_id = session_id();
dump($session_id)
GC的工作
默认情况下,session.gc_probability = 1,session.gc_divisor =100,也就是说有1%的可能性会启动GC。GC的工作,就是扫描所有的session信息,用当前时间减去session的最后修改时间(modified date),同session.gc_maxlifetime参数进行比较,如果生存时间已经超过gc_maxlifetime,就把该session删除。
相关内容
MySQL变量类型与用途
MySQL支持多种数据类型,包括数值、字符串、日期和时间等类型,以...
2024-11-20 20:23:37
MySQL变量定义与初始化
MySQL变量分为系统变量和用户定义变量,用于存储数据和配置参数。...
2024-11-20 19:00:42