今天上午写了一会儿代码,松一口气,想想这几天看<深入剖析ASP.NET组件设计>似乎有颇多领悟
第三章讲述了从请求一个ASPX页面到产生HTML代码并发送给客户端的全过程
整个过程好似一个接力赛一般,而客户端的请求就是那根接力棒,且看IIS和ASP.NET是如何处理的呢,下面的步骤是细化和分解了的一个请求以及处理过程
1,客户端输入网址
2,IE请求DNS解析并定位到目标主机发送请求
------------------------------以上发生于客户端---------------------------
(我有时候甚至觉得浏览器这个说法不太恰当,IE更像一个客户代理的角色,想想看,帮客户发送请求,把请求的反馈展示给客户,这不是代理角色的功能吗?)
3,服务器端的IIS守护进程接受到请求
4,根据域名找到对应主机头的站点(WEB应用)
5,根据请求页面文件的扩展名找到相应的ISAPI RUNTIME
6,ISAPI RUNTIME接受请求,连带请求的数据一起转发给ASP_WP(ASP.NET的工作进程)
-----------------------------以上由IIS和ISAPI扩展完成---------------------------------------------------------
(比较像接力赛吧请求-->IIS-->ISAPI-->ASP_WP)
7,ASP_WP会建立或选择一个ASP.NET应用程序来处理请求(初次请求或者在无任何请求发生后的一段时间后再次请求,才会建立应用,平时应用一旦建立,除非内存紧张或闲置一段时间,否则,此应用一直存在)
8,ASP_WP将请求再转至应用程序的HTTPRUNTIME
--------------------------以上由ASP_WP工作进程完成----------------------------------------------
9,接下来,HTTPRUNTIME开始处理请求,HTTPRUNTIME负责建立HTTPCONTEXT对象,HTTPCONTEXT对象管理着SESSION,HTTPRUNTIME会用访问者信息填充HTTPCONTEXT
10,HTTPRUNTIME接着建立HTTPAPPLICATION,这个过程是通过向HTTPAPPLICATIONFACTORY请求得到的
11,HTTPRUNTIME接着加载各种HTTPMODULE,比如SESSION MODULE
--------------------------以上由HTTPRUNTIME负责完成----------------------------------------------------------------------
12,HTTPAPPLICATION被建立后,权力就交到它手中了,它负责加载各种HTTPHANDLE
13,HTTPAPPLICATION根据页面类型找到相应的HANDLEFACTORY,比如ASPX页面,就对应着PAGEHANDLEFACTORY
14,HANDLEFACTORY通过解译,然后再编译相应的ASPX页面,创建出一个PAGE对象
15,HTTPAPPLICATION运行此PAGE对象,产生相应的HTML页面然后发送给客户端
-----------------------以上上HTTPAPPLICATION完成----------------------------------------------------
可以看出,每一段都有一个主控对象,这个对象的功能就是负责创建或者请求创建用于处理请求的下一个对象,并将请求转发给它
整个过程请求由IIS-->ISAPI-->ASP_WP工作进程-->HTTPRUNTIME-->HTTP APPLICATION一步一步完成
而且你会发现,世界上充满了服务与被服务,以及流式层次式的服务模型
不管ISO7层模型也好
还是WEB服务器的运作原理
还是ASP.NET的处理过程中
显著的三个特点就是:服务型(总有一个对象为一些对象提供服务),流式(数据或信息,总是沿着某条固有路线在流动),层次式(服务总是一层一层进行,而且越来越接近于目标)
这好比,你要吃一个面包,要经过以下过程:
农民收割小麦(最低等)-->小麦被送到加工厂加工成页粉(精细了一些吧)-->面包坊买来面粉做成面包-->面包送进商场-->你买到了面包
整个过程中,前者总是为后者提供东西(数据),后者总是为前者提供服务(服务)
另外,你的目标是面包,因此,你只会向商场买,你不会向农民或者加工厂买,虽然一开始看起来,这东西(数据)离你的想象差距很大,简直是不着边,可是,随着一层一层对数据的加工,你最终得到了想要的,并且,数据每流入下一层,就看起来更接近你的要求了吧

转载于:https://www.cnblogs.com/Heroman/archive/2004/11/25/68506.html

从IIS到PAGE对象:ASP.NET之旅相关推荐

  1. asp.net中page对象生命周期和各事件执行顺序

    asp.net页面事件执行顺序: 一.初始化部分: 1.构造函数:创建page类的一个实例,初始化page类的属性. 2.AddParsedSubObject函数: protected virture ...

  2. IIS 7.0的ASP.NET应用程序生命周期概述

    小结于:http://msdn.microsoft.com/zh-cn/library/bb470252(v=vs.100).aspx IIS 7.0的ASP.NET应用程序生命周期概述 (一)结构概 ...

  3. core部署iis的 调试net_远程调试远程 IIS 计算机上的 ASP.NET Core - Visual Studio | Microsoft Docs...

    在 Visual Studio 中远程调试远程 IIS 计算机上的 ASP.NET CoreRemote Debug ASP.NET Core on a Remote IIS Computer in ...

  4. IIS 7.0 的 ASP.NET 应用程序生命周期概述

    本主题介绍在 IIS 7.0 集成模式下运行以及与 .NET Framework 3.0 或更高版本一起运行的 ASP.NET 应用程序的应用程序生命周期.IIS 7.0 还支持经典模式,其行为类似于 ...

  5. How to set the Default Page in ASP.NET?

    How to set the Default Page in ASP.NET? Ask Question Asked 9 years, 7 months ago Active 3 months ago ...

  6. Windows Server2003 sp2重装IIS后无法浏览asp.net网页解决方法

    Windows Server2003 sp2重装IIS后无法浏览asp.net网页,但可以查看图片和html页面,说明是iis重装后asp.net没有注册好,因此需要重新注册asp.net,具体方法如 ...

  7. WebKit Page对象的分析

    Page对象是webkit的核心对象之一,顾名思义,Page数据结构就是描述览器上我们打开的一个页面,这样一个页面包括很多部分,比如菜单控制,拖拽控制,页面显示,以及一些参数设置等.所以webkit中 ...

  8. IIS URL Rewriting 和 ASP.NET routing(下)

    在IIS URL Rewriting 和 ASP.NET routing(上)中,我们针对IIS URL Rewriting 和 ASP.NET routing的理念和功能分别进行分析并进行对比,在清 ...

  9. [翻译]-马丁·福勒-page对象

    译者注:这篇文章翻译自马丁·福勒(Martin Flower,对,没错,就是软件教父)官网的一篇文章,原文出处在文底.如果你正在做WEB自动化测试,那么我强烈推荐你看这篇文章.另外透露Martin F ...

  10. java中page的对象,page对象

    page对象是JSP九大内置对象之一.JSP全称JavaServerPage,是一种动态网页技术标准,以Java语言作为脚本语言.在JSP中预先定义了九个内置对象,这个九个内置对象不需要声明就可以在脚 ...

最新文章

  1. Build SSCLI20 under VS2008 full Document (完全手册)
  2. 深度丨霍金的去世让我想起了微软提出的人工智能十大原则
  3. C# 8中的默认接口方法
  4. c语言 feof_C语言 实现简单功能的12306火车售票系统【附源码】
  5. eclipse 64位_第3天 | 12天搞定Python,用Eclipse编写代码
  6. TCP/IP面试常问合集,JavaWeb内容及HTTP协议
  7. [Python图像处理] 二十一.图像金字塔之图像向下取样和向上取样
  8. 【测试点分析】1081 检查密码 (15分)
  9. Android 7.0 Nougat介绍
  10. python jpg 压缩因子_IOS图像2之jpg、png图片保存、互转、设置有损压缩因子
  11. 架设WIN32汇编程序的开发环境
  12. [BZOJ2761/Luogu4305][JLOI2011]不重复数字 题解
  13. Android控件之HorizontalScrollView 去掉滚动条
  14. 前端是Sencha Touch+ Cordova(转)
  15. 数学建模算法python源码_如何使用python完成数学建模常见算法
  16. Linux zlog日志打印
  17. 亿图思维导图软件MindMaster Mac版常用快捷键汇总
  18. 计算机课flash课件,flash课件在计算机教学过程中的应用
  19. cdrx8如何批量导出jpg_cdr怎么保存jpg格式
  20. 关于java的文件操作

热门文章

  1. 基于GitLab+Docker+K8S的持续集成和交付
  2. 活血化瘀药题库【1】
  3. linux 下的无线网络配置,详解在LINUX环境下怎样设置无线网络配置
  4. c语言打砖块小游戏,C语言动画(打砖块游戏)
  5. 浅谈Android支付宝快捷支付
  6. HTML+CSS+JS 01篇
  7. 2022杭州云栖大会定档11月3日至5日:技术产品发布+超4万平科技展
  8. JavaWeb自学笔记
  9. strcmp与strncmp与memcmp的区别
  10. Android 在一个APP里打开另一个APP