zoukankan      html  css  js  c++  java
  • HTTP 流程

       

        asp.net 中http请求的页面通过Imodul,Ihandler,Page页面,处理成HTML代码 返回到IIS 中去了

       HTTP.sys 是操作系统的核心组件,是操作系统侦听HTTP请求的驱动程序,

        HTTP.sys 获取请求后inetinfo.exe(Internet Information Services)就是IIS的处理程序,

        IIS把HTTP请求通过 ISAPI(Internet Service application pregrams  interface) 系统筛选,

        再在CRL里面生成一个httpapplication  创建httprequest  httpresponse 等对象,在传递到httpmodule  再到httphandler  再到httpmodule 再到 httpapplication  把生成页面返回到 HTTP .sys 发回请求端。生成页面,

        所有asp.net页面都继承Page类。而Page继承Httphandler  ,也就是说所有asp.net页面实际上都实现Ihttphandler ,执行返回HTML代码,或者数据流。极端思维:我们甚至不用HTMl页面直接在 httphandler 返回数据量或者HTML代码。就行。

         HTTP请求------>Http.sys捕获------->IIS处理------>ISAPI处理(根据不同后缀名,找对应的处理程序)----->创建HTTPAplication(包含httprequest,httpresponse等对象)------>Httpmodule----->IHttphandler(所以得Page页面都实现了个接口)------>Httpmodule----->IIS------>HTTP.sys---->返回给客户端 

       ISAPI 对应处理程序实际上是IHttphandler来实现的;

       httphandler 在web.config中的配置

        path:请求的正则匹配,只有满足匹配时才执行这个httphandler

        verb:http请求的方式;如:get post,head,debug。四种方式

        type:httphandler的命名空间

       <httpHandlers>
                <add path="*.cd" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
                <add path="*.adprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
                <add path="*.lddprototype" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
                <add path="*.sdm" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
                <add path="*.sdmDocument" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
                <add path="*.mdf" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
                <add path="*.ldf" verb="*" type="System.Web.HttpForbiddenHandler" validate="True" />
               
            </httpHandlers>

       httpmodule在web.config 中的配置

          name:httpmoudule的名称  type:httpmodule的命名空间;

     <httpModules>
                <add name="Profile" type="System.Web.Profile.ProfileModule" />
                <add name="ErrorHandlerModule" type="System.Web.Mobile.ErrorHandlerModule, System.Web.Mobile, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
                <add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
                <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" />
                <add name="ScriptModule-4.0" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
            </httpModules>

       

        

  • 相关阅读:
    BZOJ3456: 城市规划
    BZOJ4555: [Tjoi2016&Heoi2016]求和
    关于wqs二分(凸优化) 实数二分和整数二分的一些讨论
    求逆矩阵模板
    再探模拟费用流一类问题
    「九省联考 2018」秘密袭击(差分+生成函数+拉格朗日插值+整体dp+线段树合并):
    「九省联考 2018」IIIDX(贪心+线段树(平衡树)):
    【GDOI2020模拟03.28】数二数(two) (计数动态规划):
    「十二省联考 2019」骗分过样例(提答+数论+乱搞):
    二进制分组学习小记:
  • 原文地址:https://www.cnblogs.com/jiangqiang/p/2780001.html
Copyright © 2011-2022 走看看