为什么视图状态、会话和应用程序状态被认为对 Web 应用程序不利?

Why is View State, Session and Application state considered bad for a web app?

在 Whosebug 和 C# 角上多次阅读。只是想知道为什么?如果这是一种不好的做法,那么有什么选择。抱歉,如果我太天真了,我才刚刚开始网络开发。

以前,在 Web 应用程序中,整页刷新比部分更新更常用于更新内容。从那时起,随着图书馆和学习资源的大量改进,我们的应用程序在第一页加载后永远不会请求整个页面,除非用户需要它。

随着从服务器发送和接收部分更新,在服务器中存储状态已变得很普遍。如果在客户端存储状态更优,我们有使用 cookie 的旧解决方案或使用 Web Storage 和 IndexedDB 的新方法。在编码字段中存储状态并将其发布到服务器(视图状态)的想法除了不必要之外还增加了页面大小。

对于Session State,我只能说,你在会话中持有的数据越少,你就越能免受机器故障和数据丢失的影响。如果它是重要数据,则存储在数据库中,否则存储在客户端。但是可以在Session中存储少量用于认证的数据。

对于应用程序状态,与上述类似的参数=>使用数据库。