【问题标题】:Why should I use cookies other than for storing a session id?除了存储会话 ID 之外,我为什么要使用 cookie?
【发布时间】:2013-12-01 18:57:47
【问题描述】:

据我所知,对于 HTTP,有两种方法可以存储属于客户端的数据并将某种状态带入原本无状态的 Browser-webcontainer-connection:1) 存储在客户端 cookie 中的数据 - 或 2 ) 存储在 cookie 中的会话 ID 和存储在服务器端 web 容器中的相关数据。当我比较这两种可能性时,我想不出一个理由,为什么要走第一种。但是,当我查看浏览器的 cookie 时,我看到其中存储了很多数据。

  • 网络容器(如 tomcat)可以将任意数据与会话 ID 一起存储 - cookie 的大小非常有限。
  • Cookie 更容易受到攻击,因为它们存储在客户端。将数据保存在服务器端对我来说更安全。
  • cookies 和 webcontainer-sessions 都可以定义过期日期。
  • 浏览器和网络容器都在重启时保留其数据。

任何人都可以提出使用 cookie 存储会话数据有好处甚至是必要的方案吗?

【问题讨论】:

    标签: session cookies session-cookies web-container servlet-container


    【解决方案1】:

    单独依赖会话的问题在于,为了限制服务器的内存使用,会话数据必须在一段时间后被清除,例如20 minutes is the default of ASP.NET

    因此,如果您网站的用户必须登录,并且您希望为他们提供“记住我”选项,如果您为此目的使用会话,您的用户将在一段时间不活动后退出。

    实现这一点的最简单方法是存储一个具有较远过期日期的加密 cookie,以便用户在以后进行身份验证。

    为了让用户能够远程结束他们的会话,GmailFacebook 之类的网站并不仅仅依赖于 cookie 值进行身份验证,但他们可能会为这些会话使用特殊存储而不是通用会话。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-10
      • 2014-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-03
      • 1970-01-01
      相关资源
      最近更新 更多