在我看来,只要您只想存储简单的值,例如上次访问的时间戳和会话中的用户 ID,那么使用 Redis 作为 Gorilla 会话的会话持久性实际上毫无意义,因为它们似乎是无论如何,将其存储在客户端的 cookie 中。我在这个假设中是否正确?我知道有一个大小限制,而且如果我要将会话存储在文件中(带有大猩猩会话的另一个可用存储选项),则无法扩展到该机器之外,但同样,整个“会话存储”是一个大猩猩会话 cookie 存储没有问题?
1 回答
汪汪一只猫
TA贡献1898条经验 获得超8个赞
使用 Redis(或任何其他服务器端存储)可以帮助避免一整类问题,即:
较大的 cookie 大小增加了每个请求的开销 - 即使每个请求额外的 4K 在移动连接上也可能很多。
大大降低 cookie 数据存储在服务器端时被操纵的风险。
能够在会话中存储超过 4K 的数据(即来自多步骤表单的表单数据)
...在 Redis 的情况下,能够轻松地使服务器端会话过期(使用 mySQL 或文件系统存储更容易出错。
cookie 仍然是必需的,因为它必须存储一个标识符,以便用户可以与他们的服务器端会话相关联。这并不是特别针对 gorilla/sessions 的,而是几乎所有其他服务器端会话实现的行为。
如果您认为您的用例很简单,那么可以肯定,坚持使用基于 cookie 的会话。gorilla/sessions 可以很容易地在以后更改后备存储。
- 1 回答
- 0 关注
- 169 浏览
添加回答
举报
0/150
提交
取消