【发布时间】:2011-09-09 08:45:36
【问题描述】:
几个月前我开始使用 PHP。为了为我的网站创建登录系统,我阅读了 cookie 和会话及其差异(cookie 存储在用户的浏览器和服务器上的会话)。那时,我更喜欢 cookie(谁不喜欢 cookie?!),只是说:“谁在乎呢?我没有任何好的协议将它存储在我的服务器中”,所以,我继续使用 cookie 来我的本科毕业设计。但是,在完成我的应用程序的大部分内容之后,我听说对于存储用户 ID 的特殊情况,会话更合适。所以我开始思考如果陪审团问我为什么使用 cookie 而不是会话,我会说什么?我有这个原因(我不需要在内部存储有关用户的信息)。这足以作为一个理由吗?还是不止于此?
能否请您告诉我使用 cookie 保存用户 ID 的优点/缺点?
感谢 StackOverflow 中的所有人!
【问题讨论】:
-
这两种方法都存储数据。 Cookies 在客户端执行此操作,即在访问者设备的存储中。会话是一个聪明的“扩展”,因为它们只在客户端存储一个唯一的 ID,而在服务器端存储所有实际数据。当他们从客户端的 cookie 中接收到唯一 ID 时,他们就知道要在服务器上加载哪些数据。在大多数情况下,会话将是您所需要的。顺便说一句,您可以使用github.com/delight-im/PHP-Cookie 以更现代的方式管理两者。
-
顺便说一句,WordPress 核心几年前放弃了使用会话,现在使用solely cookies。有趣的。我想知道他们是否这样做是为了更容易在一组负载平衡的服务器上进行部署和/或减少由于会话垃圾收集而导致的随机注销。