HTTP协议――“无状态的协议”
Web服务器每分钟对上千个用户进行管理的一种方式就是执行所谓的“无状态”连接。只要有一个希望浏览器返回一个页面、图像或其他资源的请求,就发生以下事情:
连接到服务器
告诉服务器想要的页面、图像或其他项
服务器发送请求资源
服务器切断连接,把用户忘得干干净净。
ASP.Net Web Form的“连续”和“有状态”的假象
ASP.NET的设计者们,从实际访问者的角度重新考虑了这一过程:访问者打开一个页面,点击一个按钮,看到新的画面……这一切似乎都是连续的。
其实,Web应用本质上是无状态的,如需保存状态则需要做状态管理,状态维护是对同一页或不同页的多个请求维护状态和页信息的过程 ,保持用户信息(状态)的连续性。
状态维护技术有下面几种:
视图状态:使用一个或多个隐藏域来保存控件的状态。
控件状态:当开发自定义控件时,保存控件的状态数据。
隐藏域:标准的HTML隐藏域。
Cookie:用于在客户端保存少量的数据。
查询字符串:查询字符串是在页URL的结尾附加的信息。
应用程序状态:用于保存服务器端的全局应用程序信息。
会话状态:保存会话状态信息。
配置文件属性:ASP.NET提供了一个称为配置文件属性的功能,可以保存服务器端的全局应用程序信息。