【问题标题】:Where is the Session stored?会话存储在哪里?
【发布时间】:2015-05-19 08:41:54
【问题描述】:

我问我的朋友,会话存储在哪里?在服务器还是浏览器? 他说,在服务器。 然后我说“我认为保存在服务器上的东西叫做缓存”。

然后,我去谷歌搜索阅读文章,但我没有找到具体的正确答案,在MSDN上也没有具体的答案。

【问题讨论】:

  • 在服务器内存中,它存在于每个用户而不是缓存。
  • 我相信这个问题可能是阅读文档的解决者...... MSDN 有关于会话状态和可用存储的好文章......

标签: c# asp.net session


【解决方案1】:

通常它保存在服务器的内存中,但您也可以拥有数据库支持的缓存。它从不缓存在客户端上,因为它可能包含用户不应该使用的信息,例如数据库的密码。

可以在on MSDN找到保存会话状态的完整位置列表:

  • InProc 模式,将会话状态存储在 Web 服务器的内存中。这是默认设置。
  • StateServer 模式,它将会话状态存储在称为 ASP.NET 状态服务的单独进程中。这可确保在重新启动 Web 应用程序时保留会话状态,并使会话状态可用于 Web 场中的多个 Web 服务器。
  • SQLServer 模式将会话状态存储在 SQL Server 数据库中。这可确保在重新启动 Web 应用程序时保留会话状态,并使会话状态可用于 Web 场中的多个 Web 服务器。
  • 自定义模式,可让您指定自定义存储提供程序。
  • 关闭模式,禁用会话状态。

【讨论】:

    【解决方案2】:

    Session本身是存储在服务器端的。每个访问服务器的浏览器都会从服务器获得唯一的Session ID。此会话 ID 浏览器发送到请求到同一服务器的每个页面。 Session

    所以在客户端(浏览器)端,浏览器中只存储了 Session ID cookie.

    (这是默认行为,当在浏览器设置中启用会话cookie时......还有一种称为“URL重写”的技术将会话ID嵌入为URL查询参数,每次调用服务器时,启用应用程序即使浏览器会话 cookie 被禁用也能正常工作)

    欲了解更多信息,请通过此http://ejvyas.blogspot.in/2010/02/where-is-stored-is-it-in-browser-or-at.html

    【讨论】:

      【解决方案3】:

      快速回答:两侧。

      以前,会话存储在服务器端。这种方法意味着每次创建或验证会话时都必须转到服务器端。还必须为所有 Web 服务器复制会话。这些东西足以损害性能。

      另一种将会话数据存储为 cookie 的老式方法(如答案中所述)。显而易见的流程是 cookie 有 4kb 的限制。

      为了克服它,万维网联盟定义了客户端sessionStorage,它可以立即添加或验证,并且不需要在网络服务器之间复制数据。

      可以在浏览器的开发工具/应用程序标签中看到。例如,我的 Facebook 页面的会话如下所示:

      【讨论】:

      • 我指的是客户端,当然。更新了答案。谢谢!
      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 2015-06-23
      • 2016-09-01
      • 2019-03-11
      • 2014-06-06
      • 2011-08-01
      • 2022-01-11
      • 2021-12-26
      相关资源
      最近更新 更多