zoukankan      html  css  js  c++  java
  • Httphandler,HttpModule学习笔记

    1.Asp.Net页面请求流程(IIS5.X)

    gif_1

    inetinfo.exe:监听Request并把Request分发到Work Process。
    Http PipeLine:将Http请求发送给ASPNET_WP.EXE进程的管道。采用这个管道来通信是由于IIS在IntelInfo进程,和ASPNET_WP.EXE进程间的通信是同一台机器不用进程的通信。(ASPNET_WP.EXE进程是由ISAPI创建的。)
    ASPNET_WP.EXE(Work Process):一台机器只有一个该进程,每一个基于虚拟目录的ASP.NET Application(网站)对应一个Application Domain,也就是说所有的Application都是运行在同一个Work Process上的。Application之间的隔离是通过Domain而不是通过Work Process进程。

    gif_1

    HttpContext:体现当前Request的上下文信息,它的生命周期知道整个Request处理结束或者处理超时。通过HttpContext对象我们可以访问属于当前Request的一系列常用的对象:Server,Session,Cache,Application,Request,Response,Trace,User,Profile等等。此外我们可以认为将一些数据放在Items属性中作为状态管理的一种方式,不过这种状态管理和其他一些常用的方式,比如Session,Cache,Application,Cookie等,具有根本性的不同之处是其生命周期仅仅维持在当前Request的Context中。
    HttpApplication:ASP.NET Application的体现,和global.asax对应,通过HttpApplicationFactory.GetApplicationInstance创建一个基于Gloabal.asax的HttpApplication对象。在创建这个对象之前,会调用InitInternal方法,该方法中有一个InitModules(),会创建config文件中注册的Modules,并且把这些Modules加载到HttpApplication的_moduleCollection Filed中。

    2.HttpModule

    HttpApplication本身并不提供对Request的处理功能,通过HttpModule封装一些功能模块,并将其注册到HttpApplication中来实现这些功能。

    3.HttpHandler

    定义了各种Type的请求的处理程序,比如下面这一段:
    <add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory" />
    PageHandlerFactory是aspx文件的默认处理程序
    <add verb="*" path="*.config" type="System.Web.HttpForbiddenHandler" />
    HttpForbiddenHandler是config文件的默认处理程序,HttpForbiddenHandler实现了当尝试访问映射到此处理程序的资源时,它会发出 HTTP 403 错误“禁止”。

    参考:http://www.cnblogs.com/artech/archive/2007/09/13/891266.html

  • 相关阅读:
    javascript和C#比较
    前端模块管理器简介
    javascript中的splice方法介绍&示例
    javascript中数组揭秘
    17款code review工具
    IIS ip访问限制插件
    iis 限制动态IP地址访问次数
    AWS云使用100条宝贵经验分享
    C# 开源框架(整理)
    如何获取Azure AD tenant的tenant Id?
  • 原文地址:https://www.cnblogs.com/celery94/p/1365295.html
Copyright © 2011-2022 走看看