zoukankan      html  css  js  c++  java
  • ASP.NET运行机制

    刚开始与服务器通过3次握手建立连接后将用户动作封装成http请求的报文,然后通过Socket客户端发送到后台服务器
    的内核模块中的HTTP.SYS(),然后将请求分发给用户模式中的IIS,IIS中的w3svc服务(svchost.exe)拿到请求后,
    如果是静态文件(html,css,js....),直接将请求的文件读取出来封装成响应报文发送给客户端,如果是动态文件,
    发现自己处理不了,就去inetinfo.exe进程里面获得当前请求交给谁处理, 再将请求分发给具体的工作进程(w3wp.exe)
    里面的aspnet_isapi.dll(IIS6+版本,aspnet_isapi.dll在工作进程的非托管模块里面),然后把请求给托管环境的
    ISAPIRuntime的ProcessRequest方法,此方法有一个ecb句柄,
    把ecb句柄指向的内容创建成了一个HttpWorkerRequest对象,然后交给HttpRuntime,将创建的HttpWorkerRequest对象
    传递给HttpRuntime的PR方法,在HttpRuntime方法内部再将HttpWorkerRequest对象继续封装成高级的HTTPContext
    上下文对象,HTTPContext包含了HttpRequest和HttpResponse等对象,然后通过HttpApplicationFactory从对象池
    (为了重用对象,解决性能慢的问题,说白了就是一个对象数组)中获取一个HttpApplication实例,让HttpApplication
    负责执行管道的流动,然后依次返回给客户端

     

     

     

  • 相关阅读:
    微信开发之注册公众号(二)
    我开通个人博客了~~~~
    微信开发之启用开发者模式(三)
    float浮动属性
    数组的定义与特点
    块级元素和行内元素
    对于if判断和switch选择的入门理解
    Form表单
    不知名的作业
    自我介绍
  • 原文地址:https://www.cnblogs.com/xiaoweigogo/p/7800079.html
Copyright © 2011-2022 走看看