开发人员应该对IIS理论层的知识了解的多一些~第三讲 网页从IIS端到客户端浏览器经历的阶段

你有没有想过,当用户打开浏览器,输入网址,回车,然后浏览器上就会出现网站的内容,在这个过程中,是怎么的一个过程呢!

当请求一个*.aspx,*.html,*.jpg文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀为aspx之后,将这个请求转交给ASPNET_ISAPI.dll,ASPNET_ISAPI.dll会通过(Http PipeLine将请求发送给ASPNET_WP.exe进程,在ASPNET_WP.exe进程中通过HttpRuntime来处理这个请求,处理完毕将结果返回客户端。

当Http请求进入 Asp.Net Runtime以后,它的管道由托管模块(Managed Modules)和处理程序(Handlers)组成,并且由管道来处理这个 Http请求。下面是在这个Http Runtime运行时中的处理请求的流程,如图:

inetinfo.exe进程:是www服务的进程,IIS服务和ASPNET_ISAPI.DLL都寄存在此进程中。

ASPNET_ISAPI.DLL:是处理.aspx文件的win32组件。其实IIS服务器是只能识别.html文件的,当IIS服务器发现被请求的文件是.aspx文件时,IIS服务器将其交给aspnet_isapi.dll来处理。

aspnet_wp.exe进程:ASP.NET框架进程,提供.net运行的托管环境,.net的CLR(公共语言运行时)就是寄存在此进程中。

Framework处理一个Http Request的流程:

HttpRequest

inetinfo.exe

ASPNET_ISAPI.dll

ASPNET_WP.exe

HttpRuntime

HttpApplication Factory

HttpApplication

HttpModule

HttpHandler Factory

HttpHandler

HttpHandler.ProcessRequest()

  ASP.NET请求处理过程是基于管道模型的,这个管道模型是由多个HttpModule和HttpHandler组成,ASP.NET把 http请求依次传递给管道中各个HttpModule,最终被HttpHandler处理,处理完成后,再次经过管道中的HTTP模块,把结果返回给客 户端。我们可以在每个HttpModule中都可以干预请求的处理过程。

 本文转自博客园张占岭(仓储大叔)的博客,原文链接:开发人员应该对IIS理论层的知识了解的多一些~第三讲 网页从IIS端到客户端浏览器经历的阶段,如需转载请自行联系原博主。

时间: 2024-10-27 02:25:30

开发人员应该对IIS理论层的知识了解的多一些~第三讲 网页从IIS端到客户端浏览器经历的阶段的相关文章

开发人员应该对IIS理论层的知识了解的多一些~目录

如果你是一个开发人员,如果你对HTTP一些理论知识了解不透彻,那本系列文章将会很适合你,一个好的WEB开发人员,他一定是一个了解HTTP请求的人,一个好的WinForm开发人员,他一定是一个了解windows系统知识的人,呵呵! 开发人员应该对IIS理论层的知识了解的多一些-目录 第一讲 什么是Http? 第二讲 静态网页与动态网页如何被解释执行的 第三讲 网页从IIS端到客户端浏览器经历的阶段 第四讲 HttpModule中的几大事件 第五讲 HttpHandler在实际项目中用法 第六讲 H

开发人员应该对IIS理论层的知识了解的多一些~第二讲 静态网页与动态网页如何被解释执行的

从客户端发个请求到服务器,服务器会判断这个文件是静态的HTML,图像,还是动态的(asp,.net,jsp,php等等),再根据它们去选择IIS的处理程序(handler),如果是静态文件直接由IIS进行相应,而如果是动态文件,则交给aspnet_isapi处理程序去响应它,如图所示:    第一次请求时创建HttpRuntime对象:  为每个请求创建对象(HttpContext)  为每个请求创建HttpApplication对象: 下面是个详细的.net http的三大核心对象,我们在以后

开发人员应该对IIS理论层的知识了解的多一些~第四讲 HttpModule中的几大事件

本文主要介绍HttpModule,它在一个网页请求过程中是一个怎样的过程是我们要知道的,在网页加载过程中HttpModule在何时被执行也是我们要知道的,以及,HttpModule在网页请求过程中,所被触发的各个事件也是我们要知道的,下面就带着问题来看文章吧 ASP.NET对请求处理的过程 当请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之后,将这个请求转交给 ASPNET_ISAPI.dll(否则交给对应的应用程序去解释它),ASPN

web开发人员关心的IE7和IE8共存的问题

开发人员关心的IE7和IE8共存的问题-ie8和ie11能共存吗">今天安装了IE8,去微软网站下载的时候发现已经提供中文版的beta了,哈哈发现IE8没有传说中的那么妖魔化,不错的浏览器,新增功能不错. web开发人员关心的IE7和IE8共存的问题其实可以很好的解决. 解决方案一:在浏览器右上角有一个"模仿IE7"的切换按钮,但有点麻烦,需要关闭浏览器再重新打开才可以.解决方案二:在IE8自带的"开发人员工具"中,点击查看选择striet(Inte

应用-开发人员基本理论知识

问题描述 开发人员基本理论知识 开发框架.开发引擎.开发模式 以上三者的定义.应用.常用(流行)版本或工具? 解决方案 一 数据库基本理论知识

Web开发人员编程模型:隔离级别

ACID性质是数据库理论中的奠基石,它定义了一个理论上可靠数据库所必须具备的四个性质:原子性,一致性,隔离性和持久性.虽然这四个性质都很重要,但是隔离性最为灵活.大部分数据库都提供了一些可供选择的隔离级别,且现在许多库都增加了附加层来创建颗粒度更细的隔离.隔离级别应用范围如此之广主要是因为放宽隔离约束往往会使得可扩展性和性能提高几个数量级. 串行一致性是可用的最古老最高的隔离级别之一,它之所以倍受青睐是因为其提供的简单编程模型,即每次仅能有一个事务对给定的资源进行操作,这就避免了很多潜在的资源问

每个.Net开发人员应该下载的十种必备工具

下载 本文讨论: • 用于编写单元测试的 NUnit • 用于创建代码文档资料的 NDoc • 用于生成解决方案的 NAnt • 用于生成代码的 CodeSmith • 用于监视代码的 FxCop • 用于编译少量代码的 Snippet Compiler • 两种不同的转换器工具:ASP.NET 版本转换器和 Visual Studio .NET 项目转换器 • 用于生成正则表达式的 Regulator • 用于分析程序集的 .NET Reflector 本文使用了下列技术: .NET.C# 或

.NET 开发人员该下载的十个必备工具

  本文讨论的工具如下: NUnit:编写单元测试的工具 NDoc:创建代码文档的工具 NAnt:生成解决方案的工具 CodeSmith:代码生成工具 FxCop:用于监视代码的--代码警察 Snippet Compiler:小型代码段编译工具 两个不同的转换器工具,ASP.NET 版本转换器(Version Switcher)和 Visual Studio .NET 项目转换器(Project Converter) Regulator:生成正则表达式工具 .NET Reflector:程序集分

think in java interview-高级开发人员面试宝典(九)

模拟面试 今天来谈一下出于面试官的角度,他是会如何去考虑给一个侯选人面试的. 下面先来看一份简历的摘要. 熟练掌握SPRING, STRUTS1, 2, HIBERNATE: J2EE方面5年工作经验: ORACLE使用经验48个月: 熟练掌握JAVA缓存机制: 了解工作流.ERP.EAI工作机制并有实际项目经验: 老实说,一般面试官看到上面的简历就会想让这个人来面试了,因为真的你SSH,ORACLE,ERP或者是EAI等工作过5年很利害了已经,于是面试官在F2F(Face To Face)面试