• ASP.NET原理分析


    ASP.NET请求与处理全过程分析

    1.用户向服务器的某IP端口发送请求,此端口通过Http.sys来管理,请求报文被Http.sys接收,Http.sys在注册表中找能处理这个请求类型的应用程序,最终找到IIS,请求被提交到IIS服务器处理,IIS判断请求的类型。

    如果请求的是静态文件,那么IIS会直接处理,在本地找到请求的静态文件,然后发送给浏览器。

    如果是动态文件,如aspx或者ashx等动态文件,IIS就会去它的映射表里面去找,实现它接口的那个扩展程序可以处理这样的动态文件,然后IIS发现有个叫做aspnet_isapi的一个扩展程序可以处理处理像.aspx和.ashx这样后缀名的文件,那么IIS则把请求交给aspnet_isapi来处理。

    2.aspnet_isapi将启动CLR(公共语言运行时),CLR负责启动asp.net框架的域,然后将请求交给asp.net框架来处理,框架里面有个一HttpRuntime类的对象,拿到用户的请求后,它负责将请求封装成HttpContext对象,调用application对象的ProcessRequest方法(HttpContext对象作为参数)处理请求,最后处理完成后,返回给IIS,IIS再返回给浏览器,浏览器解析渲染呈现给用户。

    补充说明:

    Http.sys是一个位于Win2003和WinXP SP2中的操作系统核心组件,能够让任何应用程序通过它提供的接口,以http协议进行信息通讯。

    Http.sys的好处:
    1. 缓存 - 静态的内容现在被缓存于内核模式下,这使服务响应速度更快
    2. 记录 (Log)-IIS的log功能更快且标准化了
    3. 带宽控制 - greater scalability control and throttling
    4. 可靠性 - 所有的服务请求会在Http.sys里暂存入队列,而不是由服务程序本身来处理,这样,即使服务程序重启,尚未被处理的请求也不会丢失了
    5. IP端口重用 - 现在,只要是通过Http.sys管理的端口(基本包括了那些著名的端口,比如80),都可以同时允许多个程序同时监听了。

  • 相关阅读:
    bs4解析错误之 bs4 FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml.
    UI自动化之selenium元素定位不到问题的原因有哪几种?
    selenium定位:出现Message: element not interactable 元素不可交互的问题解决方案
    JS--编码规范
    JS操作数组-2
    JS-数组操作3
    JS操作数组
    用JS解决url地址中参数乱码的问题
    数组去重--ES5和ES6
    选择排序
  • 原文地址:https://www.cnblogs.com/sunniest/p/4445282.html
Copyright © 2020-2023  润新知