ASP.NET一般处理程序(HttpHandler)

一般处理程序(HttpHandler)

     一般处理程序:一般情况下,凡是不需要返回大量复杂的HTML代码的时候,可以使用它。
HTTPhandlers 类似于一种 ISAPI(Internet Server Application Programming Interface)扩展程序. HTTPhandlers与ISAPI extensions的一个不同点是HTTP handlers可以被直接通过URL中请求的文件名来调用。ISAPI 服务器扩展是可以被 HTTP 服务器加载和调用的程序集(DLL)。用于增强符合 Internet 服务器 API (ISAPI) 的服务器的功能。

一般处理程序(HttpHandler):

  1. 是一个实现System.Web.IHttpHandler接口的特殊类。
  2. 任何一个实现了IHttpHandler接口的类,是作为一个外部请求的目标程序的前提。(凡是没有实现此接口的类,就不能被浏览器请求。)
  3. 它由支持ASP.NET的服务器调用和启动运行。一个HttpHandler程序负责处理它所对应的一个或一组URL地址的访问请求,并接收客户端发出的访问请求信息(请求报文)和产生响应内容(响应报文)。
  4. 可以通过创建一个我们自己的HttpHandler程序来生成浏览器代码发送回客户端浏览器。

HttpHandler程序可以完成普通类程序所能完成的大多数任务:

  1. 获取客户端通过HTML的Form表单提交的数据和URL参数
  2. 创建对客户端的响应消息内容
  3. 访问服务器端的文件系统
  4. 连接数据库并开发基于数据库的应用
  5. 调用其他类

请求响应的过程

在这里插入图片描述

  1. 用户在浏览器地址栏输入:http://localhost:80777/FirstShower.ashx
  2. 服务器接收到用户的请求,发现是请求.ashx文件,便将请求交给framework执行,服务找到对应的文件first.ashx,执行后将生成的字符串(通常是html+css+javascript格式)返回给浏览器。
  3. 浏览器接收到服务器返回的数据,并按照http语法解释执行,以界面的方式展示给用户看到(此时如果html等代码中包含外部文件,则再次发送单独请求服务器相应文件数据)。

HTTP请求详解图

在这里插入图片描述

ashx?— HttpHandler(一般处理程序)

在这里插入图片描述
     FrameWork在接收到请求后,通过反射技术创建请求路径对应的类的对象,并强制转换成IHttpHandler接口对象,统一调用ProcessRequest方法处理

  1. 一般处理程序可以接收用户通过浏览器发过来的请求.(处理请求,构建响应报文返回浏览器)
  2. 一般处理只适合你的网页不需要大量复杂的HTML代码布局的情况。
  3. 理解IHttpHandler接口的作用。
  4. IsReusable属性用来表示在IHttpHandlerFactory对象创建IHttpHandler的时候是否能够将这个Handler存入池中以便重用。实际上是当前页面类对象是否可以被重用.如果被重用就放入
    池中,下次访问就从该吃中取出来。不用每次都创建该对象。
    在这里插入图片描述
         当浏览器请求发送到服务器电脑,电脑将请求交给指定80端口的软件IIS,IIS发现.aspx和.ashx它自己处理不了,就将请求交给IIS扩展程序 ASPNET_isapi.dll来处理。然后请求被交给HttpRuntime处理,HttpRuntime会将[http请求报文]封装到HttpContext对象中,并通过HttpApplicationFactory来创建一个【HttpApplication】,同时将HttpContext对象传给它。

     接下来,大部分处理都是由HttpApplication来完成的!包括 调用处理管道(一系列过滤器—本质上就是调用一系列委托)以及创建被请求的页面类的对象并处理。

HttpHandlers在Asp.net处理的位置(终点)

在这里插入图片描述
要注意的是:在处理一个外部请求的过程中,可以有N个过滤器,但最终只能有一个HttpHandler被调用。

HttpRequestWorker->HttpApplicationFactory->HttpApplication -> HttpContext(Request,Response(TextWriter),Session,Application,Server)
在这里插入图片描述

请求编译流程图

在这里插入图片描述

服务器怎么接收和发送数据

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43434300/article/details/89604958