MVC整体运行流程一(进入管道)
1、在浏览器输入 https://www.cnblogs.com/zhangmm96/发送一个HTTP到web服务器,Web服务器WIndows内核中的HTTP.SYS组件捕捉当前请求,该组件分析出是一个需要交给IIS服务器处理的HTTP请求时,就会把Request请求交给IIS来处理,
2、如果该请求有缓存就会直接响应,
HTTP.SYS组件最重要的就是有一个缓存区,将近期处理请求缓存起来,提高响应速度,静态的文件会被缓存于内核模式下
3、IIS会分析Request氢气逇context-type类型,然后从处理程序映射表中去匹配,能匹配到请求的context-type类型时,会将请求交给映射表所对应的程序处理,为匹配到时(一般是请求的静态文件),就会去下载对应路径下的文件。如jpg,
4、对于 动态资源的处理,iis首先会通过一个工作进程去加载具体的处理组件DLL,IIS6.0,无法处理asp.net请求时,就会由W3WP.EXE所维护的工作进程来加载aspnet_isapi.dll
5、如果web应用程序是第一次加载,首先由aspnet_isapi.dll加载.net运行时(.net framework创建CLR运行时)IIS工作进程中油一个应用程序池,可以承载多个应用程序域AppDomain。
6、HTTP.SYS接收请求,通过应用程序域工厂AppDomainFactory创建应用程序域AppDomain。
7、一个IsapiRequest被加载,并创建一个IsapiWorkerRequest对象来封装当前HTTP请求,并IsapiWorkerRequst对象传递个Asp.net的HttpRuntime运行时,此时Http请求开始进入Asp.net请求管道,HttpRuntime是Asp.Net请求管道的入口,当请求进来时,先进入
HttpRuntime,由HttpRuntime决定如何处理程序
8、HttpRuntime维护这一个HtttpApplication池,当有Http请求过来就从池中取出可用的HttpApplication处理请求
9、HttpRuntime根据IsapiWorkerRequest对象创建HttpContext对象。
10、HttpApplicationFactory创建新的或者从HttpApplication池中获取现有的、可以用的HttpApplication对象
11、HttpApplication调用ProcessRequest方法,内部执行19个管道事件,参考另一篇:19个管道事件
MVC整体运行流程一(进入管道)的更多相关文章
- SpringMVC系列(十四)Spring MVC的运行流程
Spring MVC的运行流程图: 1.首先看能不能发送请求到Spring MVC的DispatcherServlet的url-pattern2.如果能发送请求,就看在Spring MVC中是否存在对 ...
- ASP.NET整体运行机制+asp.net请求管道+页面生命周期+MVC整体运行机制原理图
在网上找的,个人感觉很好的
- Spring MVC整体处理流程
一.spring整体结构 首先俯视一下spring mvc的整体结构 二.处理流程 1.请求处理的第一站就是DispatcherServlet.它是整个spring mvc的控制核心.与大多数的jav ...
- MVC – 9.mvc整体请求流程
1.请求管道 2~5微软自己的验证,我们一般不用. 在全局配置文件中-已经配置一个路由过滤器-为第7个事件注册了路由方法 1.在application_start中向静态路由表注册了路由数据,在管 ...
- MVC – 9.mvc整体请求流程
1.请求管道 2~5微软自己的验证,我们一般不用. 在全局配置文件中-已经配置一个路由过滤器-为第7个事件注册了路由方法 1.在application_start中向静态路由表注册了路由数据,在管道第 ...
- Spring MVC详细运行流程
- Spring MVC 的运行流程
1.用户发送请求到DispatcherServlet 2.DispatcherServlet调用处理器映射器(HanderMapping)找到处理器 3.处理器映射器(HanderMapping)返回 ...
- SSM三大框架的运行流程、原理、核心技术详解
一.Spring部分1.Spring的运行流程第一步:加载配置文件ApplicationContext ac = new ClassPathXmlApplicationContext("be ...
- 浅析MyBatis(一):由一个快速案例剖析MyBatis的整体架构与运行流程
MyBatis 是轻量级的 Java 持久层中间件,完全基于 JDBC 实现持久化的数据访问,支持以 xml 和注解的形式进行配置,能灵活.简单地进行 SQL 映射,也提供了比 JDBC 更丰富的结果 ...
随机推荐
- C语言入门2-程序设计的灵魂—算法及Raptor的应用
一. 什么是算法(5个特性) 算法就是 解决问题的方法和步骤. 算法为解决一个具体问题而采取的确定的 有限的 执行步骤 ,仅指 计算机 能执行的算法. 算法是程序设计的灵魂和核心 ...
- C#2.0新增功能05 迭代器
连载目录 [已更新最新开发文章,点击查看详细] 迭代器可用于逐步迭代集合,例如列表和数组. 迭代器方法或 get 访问器可对集合执行自定义迭代. 迭代器方法使用 yield return 语句返 ...
- [leetcode] 106. Construct Binary Tree from Inorder and Postorder Traversal(medium)
原题地址 思路: 和leetcode105题差不多,这道题是给中序和后序,求出二叉树. 解法一: 思路和105题差不多,只是pos是从后往前遍历,生成树顺序也是先右后左. class Solution ...
- 小白开学Asp.Net Core 开篇
开学Asp.Net Core 开篇 一.准备工作 1.操作环境:Win10 2.开发工具:VS2019 3.运行环境:.Net Core 2.2 4.数据库:SqlServer2012 二.项目搭建 ...
- PHP与ECMAScript_7_流程控制
PHP ECMAScript 顺序结构 默认从上到下依次执行 默认从上到下依次执行 分支结构 if / switch if / switch 循环结构 for / while / do-w ...
- Unity3D热更新之LuaFramework篇[09]--资源热更新与代码热更新的具体实现
前言 在上一篇文章 Unity3D热更新之LuaFramework篇[08]--热更新原理及热更服务器搭建 中,我介绍了热更新的基本原理,并且着手搭建一台服务器. 本篇就做一个实战练习,真正的来实现热 ...
- 实战SpringCloud响应式微服务系列教程(第二章)
接上一篇:实战SpringCloud响应式微服务系列教程(第一章) 1.1.2背压 背压是响应式编程的核心概念,这一节也是我们了解响应式编程的重点. 1.背压的机制 在生产者/消费者模型中,我们意识到 ...
- 【Java】字符串空格相关
1. 去掉首尾空格 [trim() 方法] String.trim() //去掉首尾空格 2. 替换多个空格为一个 [replaceAll() 方法] str.replaceAll(" + ...
- BrowserSync,自动刷新,解放F5,去掉更新提示
BrowserSync虽然这个技术不算新,但是依然有用.略微介绍下 没有安装node,先安装node,这里不再做介绍 安装 npm install -g browser-sync 全局安装,方便在任 ...
- 浅谈设计模式及python实现
设计模式及Python实现 设计模式是什么? Christopher Alexander:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心.这样你就能一次又一次地使用 ...