我刚从我自己的MVC框架转移到社区支持的(CodeIgniter)。我只是将会话转换为CodeIgniter functions,并注意到默认情况下会将会话数据存储在加密的cookie中。它们提供的替代方案是数据库会话,但不是本机PHP库之类的服务器端文件会话。
现在,在我的网站上,我将构建一个安全的后端面板,因此加密的cookie看起来不像是智能选项,但我不需要不必要地连接到我的数据库,因为它不是很快(共享)主机)。
我想知道他们不支持本机会话的原因是什么,以及数据库会话或服务器端文件会话通常被认为是更好的选择。
感谢。
答案 0 :(得分:12)
基本上,为了存储会话的数据,人们通常使用以下三种解决方案之一:
文件是最常用的,因为它是默认设置 - 并且在大多数情况下它完全正常 - 但是至少有一种情况它不起作用:当你有多个服务器,并且你的用户正在加载 - 那些(即1个用户并非总是在同一台服务器上)。
在这种情况下,有一个中央/共享位置来存储会话是必要的 - 数据库符合该描述;并且易于设置 - 并且PHP应用程序通常与数据库一起使用。
由于数据库不能很好地扩展,特别是对于写入,你有时会使用像memcached这样的东西:一种将数据存储在RAM (更快)中的机制,与多个服务器一样多。你想要/需要(好好扩展)。
你应该使用什么解决方案?
嗯,你在哪种情况下?