使用生活实例理解Asp.net运行时
学习编程语言,掌握面向对象的编程思想尤为重要,一旦理解了面向对象的这种概念,那么好些地方拿到生活中去理解,就容易的多了。
书本上的枯燥干涩的语言,对于好多人来说,即难懂,更难长时间牢牢记得。但是编程语言是为生活服务,也是来源于生活。我们的生活是丰富多彩的,那么,使用生活中的实例来理解编程,一切就容易的多了。
下面,我们就用生活中打电话的例子来理解ASP.NET运行时的内部过程:
当请求到达IIS后,IIS通过Aspnet_isapi.dll的作用将请求转交给ASP.NET运行时环境,在Asp.net运行时环境中进行一定处理,最终处理结果会返回给IIS,发送到客户端。
Asp.net运行时中处理请求是通过一系列对象完成的:
HttpApplication:通过使用HttpApplication类的一个实例来处理收到的众多请求,它每次只能处理一个请求。
生活实例:相当于手机网络运营商先接收所有拨打我们手机号码的所有电话请求,但是它每次只能给你传递一个电话请求,如果同时有两个或以上请求,就需要等待第一次请求结束才可以发送第二次请求。
HttpModule:对Http请求进行筛选过滤。它可以附加一些需要信息在这个Http请求,或者针对截获的请求信息做一些额外工作,更或者某些情况下干脆终止满足一些条件的HTTP请求。经过HttpModule赛选过滤后,把适合条件的HTTP请求传递给真正的处理中心(HttpHandler)。
生活实例:相当于手机,我们通过对手机的设置,可以设置来电防火墙,拦截黑名单的来点,也可以设置指定号码的联系人名称,头像和个性铃声等等。然后把来电防火墙放行的来电通过个性化的形式传递给我们。
HttpHandler:是HTTP请求的真正处理中心。Http请求经过它的处理后,再通过httpApplication发出回应。
生活实例:相当于人,来电经过防火墙过滤,以设定的格式通知手机持有者,手机持有者接听电话,并将回复声音通过手机网络运营商传递到来电拨打者。
当然,仅仅理解了这个过程并没有什么了不起的,但是,它会在我们以后实现一些相关的功能的时候,能够很快的明白我们要用的是什么,要从哪里下手。而不再是“我要怎么做,要用什么技术”。
使用生活实例理解Asp.net运行时的更多相关文章
- asp.net 运行时, 报控件不存在
Asp.net 运行时,报控件不存在,但系统中确实加入了控件z, 但是生成网站的时候,报控件不存在,输入代码的时候,this.edtxx.Text 确实可以输入 原因: 系统修改的时候,作了一个备份, ...
- httpRuntime与ASP.NET 运行时及IIS处理模型
配置 ASP.NET HTTP 运行时设置,以确定如何处理对 ASP.NET 应用程序的请求,配置节及其描述如下所示. <httpRuntime executionTimeout="1 ...
- asp.net 运行时,"未能映射路径"
asp.net 站点出现:未能映射路径,解决方案之一:发现原来是iis 应用程序池中设置了.net framework 版本为4.0了,而且VS中站点的版本为2.0引起的. 解决方案是把VS 中的站点 ...
- 在Linux安装ASP.Net Core的运行时(Runtime)
在部署的时候,如果您不想在您的Linux服务器上安装.Net Core SDK,您可以只安装Runtime,接下来我们看看该如何安装运行时Runtime. 下载运行时文件 下载页面:https://w ...
- 第30 章 : 理解 RuntimeClass 与使用多容器运行时
理解 RuntimeClass 与使用多容器运行时 本文将主要分享以下三方面的内容: RuntimeClass 需求来源 RuntimeClass 功能介绍 多容器运行时示例 RuntimeClass ...
- 深入理解ASP.NET Core依赖注入
概述 ASP.NET Core可以说是处处皆注入,本文从基础角度理解一下原生DI容器,及介绍下怎么使用并且如何替换官方提供的默认依赖注入容器. 什么是依赖注入 百度百科中对 ...
- 乘风破浪,.Net Core遇见Dapr,为云原生而生的分布式应用运行时
Dapr是一个由微软主导的云原生开源项目,国内云计算巨头阿里云也积极参与其中,2019年10月首次发布,到今年2月正式发布V1.0版本.在不到一年半的时间内,github star数达到了1.2万,超 ...
- 理解ASP.NET Core - 配置(Configuration)
注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 配置提供程序 在.NET中,配置是通过多种配置提供程序来提供的,包括以下几种: 文件配置提供程 ...
- Objective C运行时(runtime)
#import <objc/runtime.h> void setBeingRemoved(id __self, SEL _cmd) { NSLog(@"------------ ...
随机推荐
- shell 9test命令
shell中的test用于检查某个条件是否成立,它可以进行数值.字符和文件三个方面的测试. 数值测试 * -eq 等于为true * -ne 不等,为true * -gt 大于,为true * -ge ...
- java study2
Intellj小技巧 数组 1.java数组元素类型是唯一的,即一个数组只能存储一种数据类型的数据,而不能存储多种数据类型的数据. 2.java数组的长度,一旦初始化完成,控件就被固定,即数组的长度将 ...
- ubuntu14.04 login loop issue
无法进入图形界面的所有问题几乎都碰到了,可惜尝试所有办法,还是各种broken packages 等,无法重装 ubuntu-desktop 成功. 耽误了2天,果断决定重装系统算了..尽管很多软件, ...
- Linux网络编程经典书籍推荐
UNIX环境高级编程<高级unix环境编程><unix网络编程><深入理解计算机系统>比较好 =====================Linux网络编程经典书籍推 ...
- Spring MVC 处理模型数据
SpringMVC 处理模型数据: 1 controller接收pojo: <form action="save" method="get"> &l ...
- ubuntu18.04修改时区
运行如下命令: sudo tzselect 然后选择亚洲Asia,继续选择中国China,最后选择北京Beijing. 然后创建时区软链 sudo ln -sf /usr/share/zoneinfo ...
- Dependency Injection in ASP.NET Web API 2 Using Unity
What is Dependency Injection? A dependency is any object that another object requires. For example, ...
- python写个御剑
前言: 今天师傅叫我,写个python版的御剑.然后我之前也写过 不过不怎么样,这次有新想法. 思路: 御剑:读取御剑配置文件里的所有路径,加上用户要扫描的url.进行批量检测,如果状态码为200并且 ...
- tomcat启动原理
2018年04月12日 19:55:22 太极小帅帅 阅读数:282 前言 一直在用Tomcat,但是对其启动原理一直没去研究,这里准备去面试,可能会问道.于是总结了下启动原理.完全凭感觉去揣测, ...
- 1_Utilities__bandwidthTest
使用三种模式(QUICK_MODE,RANGE_MODE,SHMOO_MODE),测试三种拷贝情况下的显存带宽(HostToDevice,DeviceToHost,DeviceToDevice) ▶ ...