cooke 和 session & 本地缓存 & 跨域
session与cookie的区别
1、cookie 数据存放在客户的浏览器上,session 数据放在服务器上。
2、cookie 不是很安全,别人可以分析存放在本地的 COOKIE 并进行 COOKIE 欺骗
考虑到安全应当使用 session。
3、session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用 COOKIE。
4、单个 cookie 保存的数据不能超过4K,很多浏览器都限制一个站点
最多保存 20 个cookie。
5、所以个人建议:
将登陆信息等重要信息存放为 SESSION
其他信息如果需要保留,可以放在 COOKIE 中
session的运行原理
当第一次访问网站时,Seesion_start()函数就会创建一个唯一的Session ID,
并自动通过HTTP的响应头,将这个Session ID保存到客户端Cookie中。
同时,也在服务器端创建一个以Session ID命名的文件,用于保存这个用户的会话信息。
当同一个用户再次访问这个网站时,也会自动通过HTTP的请求头将Cookie中保存的
Seesion_id再携带过来,这时Session_start()函数就不会再去分配一个
新的Session ID,而是在服务器的
硬盘中去寻找和这个Session ID同名的Session文件,
将这之前为这个用户保存的会话信息读 出,
在当前脚本中应用,达到跟踪这个用户的目的
禁用 COOKIE 后 SEESION 还能用吗?
可以,
在存储 session 的文件中,生成 sessionID,通过 get 传参的方式将 sessionID
传到要实现 session 共享的页面,读取 sessionID,从而从 session 中获取数据
php 在储存 session 以什么形式存在
PHP 为 session 的存储提供了三种方式: 文件/ 内存/ 自定义存储,默认是使用文
件存储.在访问量大的网站上采用这种方式就不大合适,因为这样会导致大量的输入输
出的冗余.我们可以在 php.ini 更改配置文件或者 php 脚本中通过相应的函数来设置
session 文件的存储类型来改变 session 文件的存储形式
为什么有cookie & session
- cookie的参数
<?php
setcookie('name','ldy',time()*86400,'/','.ldyphp.top');
#键名、 值、 失效时间、 当前作用域、域名作用域]
?>
session的存储方式
session.save_path="D:\phpStudy\PHPTutorial\tmp\tmp" #存储在什么位置
session.save_handler = files #表明我们的session存储文件
-
详细操作
-
用户可以存session(已文件形式)?
可以 ,但 必须是访问量小的网站才可以
访问量大的网站,都存入memcache、redis缓存中
(访问量太大,如果已文件形式存入,系统将会瘫痪) -
什么是session共享
已缓存(memcache、redis)的形式存入session
Session存储
//设置用户级 session 存储函数 、可以用于存储MySQL、memcache、redis等
session_set_save_handler()
{
--开启cookie SID 就是null ,没有开启cookie或者是被禁用掉了 SID就想当于
//<?php echo session_name().'='.sission_id()?> 这个拼接的值
--}}
<a href="1.php"?<?php echo SID;?>>下一个页面</a>
怎么解决session 在多台服务器 无法共享呢?
问题:
解决:
Redis、 MySQL、memcache 共享 |
---|
解决 session 在一台服务器无法调用的问题 |
转载:https://blog.csdn.net/weixin_47124571/article/details/115767122
查看评论