ASP.NET状态管理之十三(总结)
户端设备均支持使用查询字符串传递值。
实现简单 ASP.NET 完全支持查询字符串方法,其中包含了使用 HttpRequest 对象的 Params 属性读取查询字符串的方法。 使用查询字符串的缺点 潜在的安全性风险 用户可以通过浏览器用户界面直接看到查询字符串中的信息。用户可将此 URL 设置为书签或发送给别的用户,从而通过此 URL 传递查询字符串中的信息。如果您担心查询字符串中的任何敏感数据,请考虑使用窗体(使用 POST 而不是查询字符串)中的隐藏域。 有限的容量 有些浏览器和客户端设备对 URL 的长度有 2083 个字符的限制。 服务器端状态管理 应用程序状态 ASP.NET 通过 HttpApplicationStatefrlrfSystemWebHttpApplicationStateClassTopic 类将应用程序状态提供为一种存储全局应用程序特定信息(对于整个应用程序都可见)的方法。应用程序状态变量实际上是 ASP.NET 应用程序的全局变量。 您可以在应用程序状态中存储应用程序特定的值,应用程序状态将由服务器来管理。 由多个会话共享并且不经常更改的数据是插入到应用程序状态变量的理想数据。 使用应用程序状态的优点 实现简单 应用程序状态易于使用,为 ASP 开发人员所熟悉,并且与其他 .NET Framework 类一致。 应用程序范围 由于应用程序状态可供应用程序中的所有页来访问,因此在应用程序状态中存储信息可能意味着仅保留信息的一个副本(例如,相对于在会话状态或在单独页中保存信息的多个副本)。 使用应用程序状态的缺点 应用程序范围 应用程序状态的范围可能也是一项缺点。在应用程序状态中存储的变量仅对于该应用程序正在其中运行的特定进程而言是全局的,并且每一应用程序进程可能具有不同的值。因此,不能依赖应用程序状态来存储唯一值或更新 Web 场和 Web 园服务器配置中的全局计数器。 数据持续性有限 因为在应用程序状态中存储的全局数据是易失的,所以如果包含这些数据的 Web 服务器进程被损坏(如因服务器崩溃、升级或关闭而损坏),将丢失这些数据。 资源要求 应用程序状态需要服务器内存,这可能会影响服务器的性能以及应用程序的可伸缩性。 应用程序状态的精心设计和实现可以提高 Web 应用程序性能。例如,如果将常用的、相关的静态数据集放置到应用程序状态中,则可以通过减少对数据库的数据请求总数来提高站点性能。但是,这里存在一种性能平衡。当服务器负载增加时,包含大块信息的应用程序状态变量就会降低 Web 服务器的性能。在移除或替换值之前,将不释放在应用程序状态中存储的变量所占用的内存。因此,最好只将应用程序状态变量用于更改不频繁的小型数据集。 会话状态 ASP.NET 提供了一种会话状态,该会话状态可作为 HttpSessionState 类或存储会话特定信息(仅在该会话中可见)的方法来使用。ASP.NET 会话状态将一个有限时间窗口内来自同一浏览器的请求标识为一个会话,并在该会话持续期间保留变量的值。 可以在会话状态中存储会话特定的值和对象,该会话状态对象将由服务器来进行管理并可用于浏览器或客户端设备。存储在会话状态变量中的理想数据是特定于单独会话的短期的、敏感的数据。 使用会话状态的优点 实现简单 会话状态功能易于使用,为 ASP 开发人员所熟悉,并且与其他 .NET Framework 类一致。 会话特定的事件 会话管理事件可以由应用程序引发和使用。 数据持久性 放置于会话状态变量中的数据可以经受得住 Internet 信息服务 (IIS) 重新启动和辅助进程重新启动,而不丢失会话数据,这是因为这些数据存储在另一个进程空间中。此外,会话状态数据可跨多进程保持(例如在 Web 场或 Web 园中)。 平台可伸缩性 会话状态可在多计算机和多进程配置中使用,因而优化了可伸缩性方案。 无需 Cookie 支持 尽管会话状态最常见的用途是与 Cookie 一 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |