php把用户信息存入cookie,将用户信息保存到session、Cookie?

分析:

区别

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗(可设置:httponly)

考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能

考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

抉择

Session机制:

了解web开发的人都知道session,其实是客服端存放了一个sessionID,当客户端请求服务端的时候,会把这个sessionID

发送给服务端,服务端会根据这个sessionID去内存中(一般情况下,session都是存储在内存里)查找到对应的session;当然用户如果禁用了Cookie,那你的session还能用嘛?

如果遇到了集群,则可能需要使用memcached session manager 复制session,比如Nginx复杂均衡tomcat,这个时候如果session够多,可想而知服务器承受的压力。

模仿session机制:

将用户信息保存到session、Cookie?我的想法是,将用户的的ID,类似Session的SessionID,自己加密(可使用AES加密),存放在cookie中,当然状态是httponly!

当客户端访问服务端的时候,进行解密,首先去内存(自己使用的是memcached)中查询此用户。如果没有,则去DB中查询并保存在内存中,当然用户更新什么的,就去把内存中的用户信息更新了即可。

memcached为一台单独的服务器,这样就解决了session复制的问题,直接去内存中取即可。可以省掉多少内存消耗!!!也避免了session风暴呗。

那有人会问memcached要是挂了,信息不就全完蛋了,当然,这个东西确实可能会发生,这只能给你说可以使用memcached集群。毕竟讨论的主题不在此处!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值