ASP.NET-HTTP管道模型
HTTP管道模型处理WEB程序很小的一方面。管道模型是类似于Web Services的一种在服务器端处理ASP.NET页面的框架技术
属性名 | 描述 |
Application | 每一个application的request信息 |
Application Instance | 正在处理request请求的Application对象 |
Cache | 每一个application的缓存信息 |
Handler | 正在处理request请求的Handler对象 |
Items | 每一个request请求信息 |
Request | HTTP request 信息 |
Response | HTTP response 信息 |
Server | Utility functions |
Session | Per-user cross-request state |
User | User information |
HTTP请求---> HTTP.SYS程序处理HTTP请求,判断请求是否在服务器的缓存区----> 如果缓存没有,则进入IIS ----> IIS首先判断是何种类型的文件,根据文件调用相应的程序---->如果是ASP.NET程序,则调用工作进程w3wp.exe(IIS7以上)装载asp_isapi.dll程序集----->asp_isapi.dll加载CLR环境,创建APPDomain,创建HOSTEnviment对象----->创建ISAPIRunTime对象----->ISAPIRuntime将HTTPWorkRequest对象传递给---->HTTPRuntime---->HttpApplication Factory-->HttpApplication-->HttpModule-->HttpHandler Factory-->HttpHandler->HttpHandler.ProcessRequest()
HttpModule
负责监听HttpRequest,同时对HttpRequest增添或者过滤掉一部分内容。也就是说,当一个HTTP请求到达HttpModule时,整个ASP.NET Framework系统还并没有对这个HTTP请求做任何处理,也就是说此时对于HTTP请求来讲,HttpModule是一个HTTP请求的“必经之路”,所以可以在这个HTTP请求传递到真正的请求处理中心(HttpHandler)之前附加一些需要的信息在这个HTTP请求信息之上,或者针对截获的这个HTTP请求信息作一些额外的工作,或者在某些情况下干脆终止满足一些条件的HTTP请求,从而可以起到一个Filter过滤器的作用。
HttpHandler
当一个HTTP请求经同HttpModule容器传递到HttpHandler容器中时,ASP.NET Framework会调用HttpHandler的ProcessRequest成员方法来对这个HTTP请求进行真正的处理。
以一个ASPX页面为例,正是在这里一个ASPX页面才被系统处理解析,并将处理完成的结果继续经由HttpModule传递下去,直至到达客户端。
对于ASPX页面,ASP.NET Framework在默认情况下是交给System.Web.UI.PageHandlerFactory这个HttpHandlerFactory来处理的。所谓一个HttpHandlerFactory,所谓一个HttpHandlerFactory,是指当一个HTTP请求到达这个HttpHandler Factory时,HttpHandlerFactory会提供出一个HttpHandler容器,交由这个HttpHandler容器来处理这个HTTP请求。
一个HTTP请求都是最终交给一个HttpHandler容器中的ProcessRequest方法来处理的
最新文章
- Linux Hadoop2.7.3 安装(单机模式) 二
- Linux初学:(二)Shell环境与命令基础
- Neural Style学习2——环境安装
- 使用airbnb的eslint
- IIS负载均衡ARR路由请求到ARR服务器和处理服务器
- Linux 下增大tomcat内存
- Centos下LAMP环境搭建
- UVa 1636 (概率) Headshot
- centos系统常用软件环境搭建
- OpenLayers访问WTMS服务及添加Googlemap
- 模仿jquery的一些实现 第二版
- [C#][Newtonsoft.Json] Newtonsoft.Json 序列化时的一些其它用法
- L1正则化比L2正则化更易获得稀疏解的原因
- centos7 mysql自动备份
- Linux 源码安装 Python3
- Strange Towers of Hanoi POJ - 1958(递推)
- Android开发入门经典【申明:来源于网络】
- 剑指Offer 45. 扑克牌顺子 (其他)
- js 加减乘除失精
- glfw3native.h and glfw3.h
热门文章
- oracle导入expdp、导出impdp数据库用户
- codevs——T3657 括号序列
- Spring Boot 第一个demo
- [SharePoint][SharePoint Designer 入门经典]Chapter11 工作流基础
- Libevent学习笔记
- Android开发之配置adb工具的环境变量
- 怎样在Java中运行Hive命令或HiveQL
- void型指针
- 0x21 剪枝
- CentOS 7 安装 vmware tools 提示The path ";"; is not a valid path to the 3.10.0-957.el7.x86_64 kernel headers.