cookie和session

cooke 和 session & 本地缓存 & 跨域

PHP 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的参数
    cookie和session_第1张图片
 
    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就想当于
// 这个拼接的值
--}}
<a href="1.php"? echo SID;?>>下一个页面</a>

怎么解决session 在多台服务器 无法共享呢?

问题:
cookie和session_第2张图片
解决:

Redis、 MySQL、memcache 共享
解决 session 在一台服务器无法调用的问题

cookie和session_第3张图片

你可能感兴趣的:(session,php)