Laravel - 致力于提供优质PHP中文学习资源

pFinal.cn

Cookie和session的区别

COOKIE保存在客户端,用户通过手段可以进行修改,不安全,单个cookie允许的最大值是3k。而SESSION保存在服务器端,相对比较安全,大小没有限制。 当客户端的Cookie被禁用或出现问题时,PHP会自动把Session ID附着在URL中,这样再通过Session ID就能跨页使用Session变量了。但这种附着也是有一定条件的,即“php.ini中的session.use_trans_sid = 1“,或者编译时打开打开了“--enable-trans-sid”选项。

在php.ini文件中

session.use_trans_sid=1 session.use_only_cookies=0 session.use_cookies=1 或者 在php程序中 ini_set(“session.use_trans_sid”,”1″); ini_set(“session.use_only_cookies”,0); ini_set(“session.use_cookies”,1 浏览器禁用cookie之后还可以使用session。因为cookie被禁止之后,可以通过url传递,在需要限制的页面的URL中都加上sessionid。服务器端在get到这个sessionid后,在session_start之前,设置一下得到的id就可以和用户进行关联,效果和cookie存sessionid一样。

cookie分两种,一种可以叫做session cookie,浏览器关闭就会丢失

一种可以叫做persistent cookie,就是我们通常意义上所说的cookie。 通常服务器端的session是借助于seesion cookie来和客户端交互的。 但如果客户端禁用了cookie的话,session还可以借助于url来和客户端交互。 cookie 是在客户端磁盘上存数据 session是存在服务器端的内存中 Session的缺点:保存在服务器端,每次读取都从服务器进行读取,对服务器有资源消耗。 Session保存在服务器端的文件或数据库中,默认保存在文件中,文件路径由php配置文件的session.save_path指定。 Session文件是公有的。

评论