热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Asp.net运行原理?

1.浏览器发送请求到服务器2.(IIS)服务器软件接收到请求3.请求被通过拓展程序(ISAPI)给ForamWork(简写F

1.浏览器发送请求到服务器
2.(IIS)服务器软件接收到请求
3.请求被通过拓展程序(ISAPI)给ForamWork(简写FW)

4.FW调用ISAPIRuntime里的ProcessRequest方法处理请求,在此PR中
又调用了isapiRequest的CreateWorkerRequest方法,来分析
请求报文,并将请求报文封装到一个WorkRquest对象中,
然后调用HttpRunTime的方法,ProcessRequsetNo……方法在其中,

4.1创建HttpContext对象-将根据wr对象里的请求报文数据,
将请求报文封装到HttpContext对象里的一个叫做HttpRequest对象中,然后
再为HttpContext对象里的HttpResopnse((每次输出都放到一个缓冲中)内部实现:向浏览器输出响应报文,调用它的write方法它并没用立刻输出去,而是,里面有一个HtmlWriter在HtmlWriter有一个buff[]缓冲区)
初始化(主要是HtmlWriter)

4.2要创建HttpApplication对象(因为真正创建被请求的一面类对象和执行页面对象的
PR方法都是在这个对象的方法中完成)通过工厂创建:HttpApplicationFactory.GetApplication(context);


5.当HttpApplication对象后,调用它的BeginPR方法,开始处理请求页面,这个PR方法会先后调用19个标准的处理事件(19个事件并不全部执行,以为有些事件用户没有应用)
第一个是BeginRequest(在这里也可以实现mvc)最后一个是EndRequest 在第八个事件时创建被请求的页面类对象,并装化成IHttpHander接口对象
在第11和第12事件(其实是12和13事件 单前面有一个事件可以不管它)执行的中间,调用页面对象的PR方法,执行代码.
(Http请求管道:包含19个事件方法也叫过滤器)
其中事件就是委托

6.在调用FinishRuntime方法在产生响应报文头和响应报文体(在第11和第12事件中获取)
发送会浏览器

转:https://www.cnblogs.com/wenyue/archive/2011/09/02/2163232.html



推荐阅读
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 本文介绍了如何使用Postman构建和发送HTTP请求,包括四个主要部分:方法(Method)、URL、头部(Headers)和主体(Body)。特别强调了Body部分的重要性,并详细说明了不同类型的请求体。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 短暂的人生中,IT和技术只是其中的一部分。无论换工作还是换行业,最终的目标是成功、荣誉和收获。本文探讨了技术人员如何跳出纯技术的局限,实现更大的职业发展。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 为了提升单位内部沟通效率,我们开发了一套飞秋软件与OA系统的消息接口服务系统。该系统能够将OA系统中的审批、通知等信息自动同步至飞秋平台,确保员工在使用飞秋进行日常沟通的同时,也能及时获取OA系统的各类重要信息,从而实现无缝对接,提高工作效率。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文以 www.域名.com 为例,详细介绍如何为每个注册用户提供独立的二级域名,如 abc.域名.com。实现这一功能的核心步骤包括:首先,确保域名支持泛解析,即将 A 记录设置为 *.域名.com,以便将所有二级域名请求指向同一服务器。接着,在服务器端使用 ASP.NET 2.0 进行配置,通过解析 HTTP 请求中的主机头信息,动态识别并处理不同的二级域名,从而实现个性化内容展示。此外,还需在数据库中维护用户与二级域名的对应关系,确保每个用户的二级域名都能正确映射到其专属内容。 ... [详细]
  • python模块之正则
    re模块可以读懂你写的正则表达式根据你写的表达式去执行任务用re去操作正则正则表达式使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容。在 ... [详细]
  • 本文详细解析了ASP.NET 2.0中的Callback机制,不仅介绍了基本的使用方法,还深入探讨了其背后的实现原理。通过对比Atlas框架,帮助读者更好地理解和应用这一机制。 ... [详细]
  • 网络爬虫的规范与限制
    本文探讨了网络爬虫引发的问题及其解决方案,重点介绍了Robots协议的作用和使用方法,旨在为网络爬虫的合理使用提供指导。 ... [详细]
  • 使用ArcGIS for Java和Flex浏览自定义ArcGIS Server 9.3地图
    本文介绍了如何在Flex应用程序中实现浏览自定义ArcGIS Server 9.3发布的地图。这是一个基本的入门示例,适用于初学者。 ... [详细]
  • 字符串学习时间:1.5W(“W”周,下同)知识点checkliststrlen()函数的返回值是什么类型的?字 ... [详细]
author-avatar
小米-发烧友
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有