zoukankan      html  css  js  c++  java
  • IIS处理brower的一个页面请求(www.test.com/SX?a=1)的处理流程

    IIS处理brower的一个页面请求(www.test.com/SX?a=1)的处理流程:
    1。网址www.test.com/SX?a=1,通过域名服务器解析出www.test.com所对应的ip地址
    2。根据ip地址,生成http包,通过 http get的方式传到指定服务器,被iis截获http请求
    //以下是服务器端iis的处理
    3。iis根据http头,把虚拟目录SX,转换为对应的物理路径
    4。iis根据物理路径,搜索请求的文件,这里www.test.com/SX?a=1没有指明具体文件,则取 iis里面设置的默认主页面名称,iis里一般配置成default.htm,index.htm等。

    //以下是动态语言的服务器进程的处理
    5。根据所请求文件的后缀名,iis决定是否调用ISAPI过滤器,ISAPI过滤器是一个标准com组件,负责处理iis不能处理的文件,比如(.aspx文件)。
     因为iis本身是不支持动态页面的,所以需要处理动态页面的时候,iis会根据 配置的ISAPI过滤器,决定该调用哪个 处理程序。如果没有对应的处理程序,iis会原封不动的返回页面的html代码给brower
    6。如果是.aspx文件(也可以是其他扩展名,.aspx只是iis默认的asp.net页面),iis则调用asp.net处理进程
    7。asp.net处理进程 根据.aspx页面配置的 后台代码类,调用相应编译好的类,完成后台代码处理,然后生产html文件
    8。html页面生成完成后,iis 生成http头信息
    9。iis生产http包,包括http头+html,传给相应 brower
    10。brower解析http之后,根据html文件,找出引用文件,比如.JS,.CSS文件,向server请求下载这些文件
    11。iis获取请求,发送这些文件。
    12。brower接受完文件后,解释生产相应页面。显示出来了

    //
    在asp.net中如果需要处理 对 isapi filter的处理,只需实现ihttpmodule接口。

    要实现HttpModule功能需要如下步骤:

    1.编写一个类,实现IhttpModule接口

    2.实现Init 方法,并且注册需要的方法

    3.实现注册的方法

    4.实现Dispose方法,如果需要手工为类做一些清除工作,可以添加Dispose方法的实现,但这不是必需的,通常可以不为Dispose方法添加任何代码。

    5.Web.config文件中,注册您编写的类

    到这里我们还需要了解一个Asp.Net的运行过程:

    在图中第二步可以看到当请求开始的时候,马上就进入了HttpModule,如果你自己重写了此方法,则在这里就进入你实现了ihttpmodel的对象了 

    HttpModule执行的顺序取决于web.config配置HttpModule的顺序,而HttpModule中事件的执行先后顺序与asp.net运行机制相关,具体执行顺序如下:

    BeginRequest
    AuthenticateRequest
    AuthorizeRequest
    ResolveRequestCache
    AcquireRequestState
    PreRequestHandlerExecute
    PostRequestHandlerExecute
    ReleaseRequestState
    UpdateRequestCache
    EndRequest


    此外,有三个不确定的顺序:
    PreSendRequestHeaders
    PreSendRequestContent
    Error

    举个例子:
    如果你在web.config配置了两个HttpModule,分别是HttpModuleA,HttpModuleB

    这个事件执行的顺序如下:
    HttpModuleA->BeginRequest
    HttpModuleB->BeginRequest
    HttpModuleA->AuthenticateRequest
    HttpModuleB->AuthenticateRequest
    HttpModuleA->AuthorizeRequest
    HttpModuleB->AuthorizeRequest
    ...以此类推

  • 相关阅读:
    手机如何当电脑的摄像头使用
    内网穿透软件
    如何在laravel框架中使用阿里云的oss
    css position 定位详解
    laravel 速查表
    window10如何查看连接过的wifi密码
    sweetalert弹出层组件
    phpstudy安装 与phpstudy_Windows web面板安装
    程序员修炼之道读后感
    JAVA-WEB-简单的四则运算
  • 原文地址:https://www.cnblogs.com/jacktu/p/594761.html
Copyright © 2011-2022 走看看