Play Framework Session 和 PHP Session 的区别

Difference between Play Framework Session and PHP Session

如果我理解正确的话,Play Framework 使用 cookie 来存储整个会话,而 PHP 只是在 cookie 中存储一个 Session-ID 并将真实会话本身保存在服务器端。

Play Framework 通过其方法促进了良好的横向可扩展性。但是如果我使用任何其他框架并将我的会话保存到数据库中,例如使用 Symfony 和 Redis,我看不到优势。

那么 Play 框架如何更好(对于某些用例)?

Play 架构背后的最初想法是设计师希望它是无状态的,即。服务器端的请求之间没有维护数据——这就是它不遵循 servlet 规范的原因。正如您提到的那样,这通过诸如可伸缩性之类的东西打开了灵活性 - 如果您的应用程序足够大以至于它需要扩展到不止一台机器,这本身就是一个很大的优势 - 跨集群管理服务器端会话数据是一件痛苦的事情.

但是,当然,除了简单的应用程序之外,任何其他应用程序都需要维护一些会话数据,正如您自己提到的那样,您通常会使用缓存或数据库来执行此操作。 Play 使用的 cookie 会话限制在 4Kb 左右,因此仅适用于相对少量的数据。

无状态架构的好处是多方面的,这也是 Play 的架构旨在利用的。

有点过时,但相关性仍然适用于此 article