我认为你应该在不同的情况下使用它们,因为它们都有优点和缺点。会话的最大缺点是当浏览器关闭时会话通常会被破坏。另一方面,饼干不会那么容易被破坏。虽然会话几乎总是支持,但并不总是支持 Cookie。
他们俩都不安全。据我所知,cookie 使用的性能略高一些。在客户端存储数据的一种更安全(更安全但不安全)的方法是将会话信息验证为保存在数据库中的哈希值。在数据库中存储带有哈希的会话 ID。并查一下。下次。如果你真的想要安全。使用令牌,并在每次查找信息时生成一个新令牌。
所以我不得不做出这样的决定。如果必须为多个浏览器会话存储信息。使用cookies。但是,如果您只需要保存几个页面切换的信息,只需使用会话。
编辑:好吧,我在我的 apache 服务器上运行它并跟踪 RAM 和 CPU 活动。(没有显着结果)我还检查了服务器将 1000 个变量(包含 30 个字符长的字符串)设置和取消设置到会话和 Cookie 中的时间。做了几次所有测试并取了平均值。结果。这是结果。
COOKIES
Set: 0.001863 seconds.
Unset: 0.004932 seconds.
SESSIONS:
Set: 0.000494 seconds. (very consistent results)
Unset: 0.000502 seconds. (Again very consistent)
所以会话要快得多,而且更加一致。如果您能够使用会话。我肯定会去参加会议。