动态网页的工作机制——Asp.net 运行机制

一、Asp.net 运行机制概述

1.使用Asp.net 进行动态Web开发,编写好Web应用程序,即动态页面,并部署到Web服务器,如IIS中;

2.客户端在浏览器输入地址,请求相应的动态页面;

3.Web 服务器根据客户端的请求,对Web应用程序进行编译或解释,并生成HTML流,返回给客户端

4.客户端浏览器解释HTML流,并显示为Web页面

二、Asp.net 运行机制详解

图1.1 ASP.NET 处理请求的内部过程

1.当请求发送到服务器IIS并被其接受后,IIS服务器会判断请求文件的类型:

1)、如果是静态文件,如html、jpg、gif和txt等,IIS会根据目录找到文件发送给客户端;

2)、如果是动态文件,如aspx页面,则IIS会通过aspnet_isapi.dll将请求转交给ASP.NET运行时环境,最终的处理结果会返回给IIS,然后发送到客户端。

2.ASP.NET运行时环境

在Asp.net运行时环境中处理请求是通过一系列对象来完成的,包括HttpApplicationHttpModuleHttpHandler

1).HttpApplication:处理收到的请求,HttpApplication对象每次只能处理一个请求,这样其成员变量才可用于存储针对每个请求的数据,如Request对象和Response对象;

2).HttpModule:负责所有请求的初始化和请求收尾工作,即它可以在一次HTTP请求传递到最终的“请求处理中心”(HttpHandler)进行处理之前做一些额外工作,或者在某些情况下

终止满足一些条件的HTTP请求,从而起到一个过滤的作用;

HttpModule应用实例:

①添加一个类,实现IHttpModule接口,并实现该接口中的Dispose()方法和Init()方法

public class TestHttpModule:IHttpModule
 {
    public TestHttpModule()
    {
    //
    // TODO: Add constructor logic here
    //
     }

//Dispose执行释放资源的工作

public void Dispose()
     {
          throw new NotImplementedException();
      }

//Init执行初始化的工作

public void Init(HttpApplication context)
      {
         context.BeginRequest += context_BeginRequest;
         context.EndRequest += context_EndRequest;
     }

private void context_EndRequest(object sender, EventArgs e)
     {
         HttpApplication application = sender as HttpApplication;
         application.Response.Write("<p>开始处理请求!</p>");
      }

private void context_BeginRequest(object sender, EventArgs e)
      {
           HttpApplication application = sender as HttpApplication;
           application.Response.Write("<p>结束处理请求!</p>");
       }
}

②在Web.config中的<configuration>节点下添加如下内容

<system.webServer>

<modules>

<add name="test" type="TestHttpModule" />  //name自己任意赋值,type类型等于自己实现IHttpModule接口的class名称

</modules>

</system.webServer>

3).HttpHandler:HTTP请求的最终处理中心,负责所有请求的具体工作(请求由该对象的ProcessRequest方法处理,如图1.2) ;

图1.2  HttpHandler对象的ProcessRequest方法处理请求

时间: 2024-10-29 19:10:10

动态网页的工作机制——Asp.net 运行机制的相关文章

【转】图解 HTTP协议/IIS 原理及ASP.NET运行机制浅析

前言 前一段在整理邮件的时候发现几年前和CDD老师交流时的一份邮件.下面是简单摘要: “从技术角度来说,无论哪一个阵营,跟新技术都是不可避免的,也是很累的,当然作为一个程序员来说,也是必须的.要想让技术的更新对自己的影响减小,基础就必须打牢.所以,底层的东西和抽象层的东西需要下一番功夫.因为说到底,无论什么技术,无非就是架构和最终的实现,技术框架只是应用开发的一个平台一种技术,如果了解了具体的东西,技术更新对你来说就没什么影响了,或者换句话说,你要学一种新的技术,速度和效率会非常之高.” 上面一

WebForm页面生命周期及asp.net运行机制

1.先上几张原理图着重理解: 现在针对第四副图原理进行解析: 流程: 1.浏览器发送请求 2.服务器软件(IIS)接收,它最终的目的就是为了向客户输出它请求的动态页面生成的html代码. 3.服务器不会处理类和动态页面,所以找扩展程序 4.交给FrameWork,它其中有个类HttpRuntime,其中有个ProcessRequest()方法 5.ProcessRequest()创建了HttpWorkerRequest对象,把请求报文都封装在其中(HttpWorkerRequest中有个指针,它

ASP.NET 运行机制续(完结)

上一篇说到applicationInstance会执行一些列的事件.下面是我在msdn上找到有关asp.net程序生命周期相关的描述及图片 声明周期的起始 ASP.NET 应用程序的生命周期以浏览器向 Web 服务器(对于 ASP.NET 应用程序,通常为 IIS)发送请求为起点. ASP.NET 是 Web 服务器下的 ISAPI 扩展. Web 服务器接收到请求时,会对所请求的文件的文件扩展名进行检查,确定应由哪个 ISAPI 扩展处理该请求,然后将该请求传递给合适的 ISAPI 扩展. A

ASP.NET 运行机制

原本今天打算继续写ASP.NET MVC第四天的.但是由于里面涉及到asp.net运行机制的原理,如果不分析一下这里,mvc想说清楚还是挺困难的.既然要提到asp.net运行机制,所以打算还是说详细一点的好.记录mvc第一天的时候就说过,asp.net mvc也是基于asp.net运行机制的(也就是原理).网上也有很多讲解asp.net运行机制的,我在这里说一下自己的认识,我们开始吧. 我们从web程序的入口开始.那就要先说到iis了,大家都知道,这是web服务软件.将web程序部署到iis过的

ASP.NET运行机制原理 ---浏览器与IIS的交互过程 自己学习 网上查了下别人写的总结的很好 就转过来了 和自己写的还好里嘻嘻

一.浏览器和服务器的交互原理 (一).浏览器和服务器交互的简单描述: 1.通俗描述:我们平时通过浏览器来访问网站,其实就相当于你通过浏览器去访问一台电脑上访问文件一样,只不过浏览器的访问请求是由被访问的电脑上的一个 WEB服务器软件来接收处理,它会分析接收到的请求信息,从而按照请求信息来找到服务器电脑上的文件,经过处理,最终将生成的内容发回到浏览器. 简单的说就是:由浏览器生成一条“命令”,通过互联网发给另一台电脑的某个软件(服务器软件):服务器软件接收到“命令”,就分析理解这个“命令”,然后按

ASP.NET运行机制之一般处理程序(ashx)

一. 概述 新建一个ashx文件  代码如下 <%@ WebHandler Language="C#" Class="TestHandler" %> using System; using System.Web; public class TestHandler : IHttpHandler { //dd public void ProcessRequest (HttpContext context) { context.Response.Content

一张图,理解JAVA体系结构、运行机制、JVN运行机制、Java平台(初学)

初学JAVA,学一门语言不仅仅是学其语法,逻辑思维能力,还有每一门语言都有自己独特的一方面,所以才有那么多语言要学啊 = =,所以想要真的学好语言,其编译机制,运行机制多少也要涉猎一些啊.这是初学JAVA一些机制的理解,如果有哪里不妥当,请指教.

ASP.NET 运行机制详解

1.浏览器和服务器的交互原理 通俗描述:我们平时通过浏览器来访问网站,其实就相当于你通过浏览器去访问一台电脑上访问文件一样,只不过浏览器的访问请求是由被访问的电脑上的一个 WEB服务器软件来接收处理,它会分析接收到的请求信息,从而按照请求信息来找到服务器电脑上的文件,经过处理,最终将生成的内容发回到浏览器. 简单的说就是:由浏览器生成一条“命令”,通过互联网发给另一台电脑的某个软件(服务器软件):服务器软件接收到“命令”,就分析理解这个“命令”,然后按照“命令”找到服务器电脑上的文件,将文件内容

ASP.NET运行机制

刚开始与服务器通过3次握手建立连接后将用户动作封装成http请求的报文,然后通过Socket客户端发送到后台服务器的内核模块中的HTTP.SYS(),然后将请求分发给用户模式中的IIS,IIS中的w3svc服务(svchost.exe)拿到请求后,如果是静态文件(html,css,js....),直接将请求的文件读取出来封装成响应报文发送给客户端,如果是动态文件,发现自己处理不了,就去inetinfo.exe进程里面获得当前请求交给谁处理, 再将请求分发给具体的工作进程(w3wp.exe)里面的