asp.net内部原理3
前言: 今天继续吧这个系列补齐,这几天公司的项目比较忙,回到家已经非常的累了,所以也没顾得上天天来这里分享一些东西和大家一起探讨,但是今天晚上我还是坚持打开电脑,分享一些asp。net生命周期的知识,一是可以巩固自己所掌握的知识,并且在分享的期间也能发现一些问题和大家一起探讨,同时也希望让一些“小白”们尽可能的了解asp内部的运行原理,不要每天只知道把控件拖来拖去,或者是只是知道这么写代码,而不知道为什么这么写代码。
首先呢,让我们在复习一下上一节的内容:
1)浏览器输入请求网址的域名,浏览器按照HTTP协议封装成请求报文,然后通过DNS解析域名得到IP地址,接着通过socket插座将请求报文传到服务器.
2)IIS接受到请求后,解析要求请的是一个什么类型的文件,如果请求的是静态文件,那么IIS会直接处理,在本地找到请求的静态文件,然后发送给浏览器。
3)如果是动态文件,如aspx或者ashx等动态文件,IIS会发现自己处理不了这样的文件,那么,IIS就会去他的映射表里面去找,实现它接口的那个扩展程序可以处理这样的动态文件,然后IIS发现有个叫做aspnet_isapi的这样一个扩展程序可以处理处理像.aspx和.ashx这样后缀名的文件,那么IIS则把请求交给这个aspnet_isapi来处理。
4)aspnet_isapi将启动CLR(公共语言运行时),负责启动asp.net框架的域,然后将请求交给asp.net框架来处理,框架里面有个一HttpRuntime类的对象,那倒请求后,它负责将请求封装成HttpContext对象,常见Application对象,调用application对象的ProcessRequest方法(HttpContext对象作为参数)处理请求(具体的实现我们将在后面讲解到),最后处理完成后,返回给IIS,IIS在返回给浏览器。
这是上一结我们所讲的内容,那这一节我们主要讲的是:
1--请求报文是怎么到iis的,iis又是怎么处理的
2--请求报文时怎么传递给CRL的
3--CRL拿到请求之后具体是解析处理请求,然后呈现出我们想要的页面。这里我们重点研究两个东西:
1)---Application对象的创建以及 HttpModule 注册管道的事件 golable注册管道事件
2)---页面的生命周期
这一节的内容比较多,而且有些小伙伴认为这里面有些东西是在开发过程当中用不到这知识,但是笔者认为从基础和原理去了解才能让我们正确的掌握asp。net开发并且开发出高质量的应用程序。
在阅读本节内容时,大家先了解一下以下几个概念
内核模式:就是操作系统模式,其中的程序代码能直接访问所有内存(包括所有的用户模式进程和应用程序的地址空间)和硬件,也称为“管理员模式”、“保护模式”或“Ring 0”。
用户模式:跑在操作系统之上,比如说qq,百度影音这些应用程序。都是跑在用户模式之上的。
在windows xp以前(包括xp),基于http协议的的程序都是在用户模式下运行的,而且必须自己处理例如软件中断、context swith、线程调度等问题,并且无法直接接触系统资源,过去,HTTP服务器,如IIS, Apache等都是利用Winsock API来创建一个User mode下的network listener,这个network listener往往独自占用一个ip端口,也就是说,同一个端口在同一时间只能有一个应用程序监听,这在有些时候是一个不太令人舒服的限制。
在windows 2003以后,
![](http://images.cnitblog.com/blog/437405/201309/11222111-9a16744657144c58af4beaccf69f075a.jpg)
![](http://images.cnitblog.com/blog/437405/201309/11232126-be9d3e73e8a84565b0be340a5c0b6416.jpg)
![](http://images.cnitblog.com/blog/437405/201309/11234101-47cde47224a04b47b487c3f4ab0eb29d.jpg)
![](http://images.cnitblog.com/blog/437405/201309/11234556-60ec96340a2e473fbf0b2a3d2e16e942.jpg)
![](http://images.cnitblog.com/blog/437405/201309/12000029-af23e0c759dd4d36ae3cb6e37bb49379.png)
![](http://images.cnitblog.com/blog/437405/201309/12000132-1f4d3327316f4ce28c039805c949bfd9.png)
asp.net内部原理3的更多相关文章
- 【原创】asp.net内部原理(三) 第三个版本 (最详细的版本)
前言: 今天继续吧这个系列补齐,这几天公司的项目比较忙,回到家已经非常的累了,所以也没顾得上天天来这里分享一些东西和大家一起探讨,但是今天晚上我还是坚持打开电脑,分享一些asp.net生命周期的知识, ...
- ASP.NET内部原理(HttpHandler和HttpModule)
[IT168 技术文档]在以前的ASP时候,当请求一个*.asp页面文件的时候,这个HTTP请求首先会被一个名为 inetinfo.exe进程所截获,这个进程实际上就是www服务.截获之后它会将这个请 ...
- IIS Web 服务器/ASP.NET 运行原理基本知识概念整理 转
转http://www.cnblogs.com/loongsoft/p/7272830.html IIS Web 服务器/ASP.NET 运行原理基本知识概念整理 前言: 记录 IIS 相 ...
- IIS站点工作原理与ASP.NET工作原理
IIS站点工作原理与ASP.NET工作原理 一.IIS IIS 7.0工作原理图 两种模式: 1.用户模式(User Mode)(运行用户的程序代码.限制在特定的范围内活动.有些操作必须要受到Ker ...
- IIS Web 服务器/ASP.NET 运行原理基本知识概念整理
前言: 记录 IIS 相关的笔记还是从公司笔试考核题开始的,问 Application Pool 与 AppDomain 的区别? 促使我对进程池进了知识的学习,所以记录一下学习 ...
- ASP.NET MVC原理
仅此一文让你明白ASP.NET MVC原理 ASP.NET MVC由以下两个核心组成部分构成: 一个名为UrlRoutingModule的自定义HttpModule,用来解析Controller与 ...
- 深入理解javascript作用域系列第一篇——内部原理
× 目录 [1]编译 [2]执行 [3]查询[4]嵌套[5]异常[6]原理 前面的话 javascript拥有一套设计良好的规则来存储变量,并且之后可以方便地找到这些变量,这套规则被称为作用域.作用域 ...
- ASP.NT运行原理和页面生命周期详解及其应用
ASP.NT运行原理和页面生命周期详解及其应用 1. 下面是我画的一张关于asp.net运行原理和页面生命周期的一张详解图.如果你对具体不太了解,请参照博客园其他帖子.在这里我主要讲解它的实际应用. ...
- Android线程管理(三)——Thread类的内部原理、休眠及唤醒
线程通信.ActivityThread及Thread类是理解Android线程管理的关键. 线程,作为CPU调度资源的基本单位,在Android等针对嵌入式设备的操作系统中,有着非常重要和基础的作用. ...
随机推荐
- linux_安装 redis
Installation Download, extract and compile Redis with: $ wget http://download.redis.io/releases/redi ...
- linux_shell_类似sql的orderby 取最大值
{} {} {} {} {} {} {} {} {} {} 需求场景 ,通过shell 筛选 每分钟的最大一条输出(最后一条) : .info | head
- elasticsearch的rest搜索---mapping
目录: 一.针对这次装B 的解释 二.下载,安装插件elasticsearch-1.7.0 三.索引的mapping 四. 查询 五.对于相关度的大牛的文档 三.mapping 1. 索引的map ...
- jg-table 过程2 ( jgTable )
jg-table ( jgTable ) 添加一些新的功能,这是多行表头支持,要添加到,现在支持拖放多行表来改变头部的宽度, 假设设置cloneTheadToFoot 能够自己主动翻转多行表头,这也 ...
- ASP.NET MVC 插件化
ASP.NET MVC 插件化机制 2015-03-14 22:25 by 杨康新, 1328 阅读, 15 评论, 收藏, 编辑 概述 nopCommerce的插件机制的核心是使用BuildMana ...
- 加载xib文件的两种方式
一.加载xib文件的两种方式 1.方法一(NewsCell是xib文件的名称) NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@&quo ...
- Windows服务之启动、停止、暂停、继续
原文:Windows服务之启动.停止.暂停.继续 Windows服务之启动.停止.暂停.继续 2011-11-09 15:07:37 我来说两句 收藏 我要投稿 [字体:小 大] ...
- MVC验证02-自定义验证规则、邮件验证
原文:MVC验证02-自定义验证规则.邮件验证 本文体验MVC自定义验证特性,来实现对邮件的验证.对于刚写完的自定义验证特性,起初只能支持后端验证.如果要让前端jquery支持,还必须对jquery的 ...
- CentOs Linux 文件位置标记
vsFTP默认位置: 匿名:/var/ftp/ 用户:/home/用户名 配置文件:/etc/vsftpd/ (一般安装软件后都会在/etc/下生成一个软件相关的配置文件夹) 防火墙位置: /etc/ ...
- PHP 17: MySQL的简单介绍
原文:PHP 17: MySQL的简单介绍 这一章将简单介绍MySQL的基本知识. 本文来自http://lib.hackbase.com/html/8/35125.htm. MySQL是最受欢迎的开 ...