IIS 应用程序中的状态管理

一般来说,Internet 应用程序是没有状态的。应用程序中浏览器和Web服务器之间传递请求和响应的协议是不能在每一个请求之间保持信息的。因此,当它收到一个新的请求时,协议不能记忆前面请求的任何信息。

由于协议本身不能保持状态,因此必须使用其他的方法来保存需要应用程序在请求之间记忆的信息。对一个基于 Web 的应用程序有几种可以用来保存状态的方法:

注意 您可以使用这些方法的一种组合。例如,您可以在一个数据库中保存信息并使用 cookie 发送数据库关键字到客户。

每一种方法有它自身的优点和缺点。在对象中保存状态非常容易,但它可能影响应用程序的伸缩能力,因为服务器在请求间必须保持对象实例化,并且在它每次做出随后的请求时,必须定位到同一个对象。使用数据库方法有更大的伸缩性,但是需要管理连接和记录集。在客户和服务器之间来回移动状态可避免在两个地方都保存信息,但它会增加每一个请求的带宽,具有容量限制而且潜在安全性低。