1.用户向服务器的某IP端口发送请求,此端口经过Http.sys来管理,请求报文被Http.sys接收,Http.sys在注册表中找能处理这个请求类型的应用程序,最终找到IIS,请求被提交到IIS服务器处理,IIS判断请求的类型。api
若是请求的是静态文件,那么IIS会直接处理,在本地找到请求的静态文件,而后发送给浏览器。浏览器
若是是动态文件,如aspx或者ashx等动态文件,IIS就会去它的映射表里面去找,实现它接口的那个扩展程序能够处理这样的动态文件,而后IIS发现有个叫作aspnet_isapi的一个扩展程序能够处理处理像.aspx和.ashx这样后缀名的文件,那么IIS则把请求交给aspnet_isapi来处理。缓存
2.aspnet_isapi将启动CLR(公共语言运行时),CLR负责启动asp.net框架的域,而后将请求交给asp.net框架来处理,框架里面有个一HttpRuntime类的对象,拿到用户的请求后,它负责将请求封装成HttpContext对象,调用application对象的ProcessRequest方法(HttpContext对象做为参数)处理请求,最后处理完成后,返回给IIS,IIS再返回给浏览器,浏览器解析渲染呈现给用户。服务器
Http.sys是一个位于Win2003和WinXP SP2中的操做系统核心组件,可以让任何应用程序经过它提供的接口,以http协议进行信息通信。app
Http.sys的好处:
1. 缓存 - 静态的内容如今被缓存于内核模式下,这使服务响应速度更快
2. 记录 (Log)-IIS的log功能更快且标准化了
3. 带宽控制 - greater scalability control and throttling
4. 可靠性 - 全部的服务请求会在Http.sys里暂存入队列,而不是由服务程序自己来处理,这样,即便服务程序重启,还没有被处理的请求也不会丢失了
5. IP端口重用 - 如今,只要是经过Http.sys管理的端口(基本包括了那些著名的端口,好比80),均可以同时容许多个程序同时监听了。框架