第1单元-管道和中间件简介

Posted 一都编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第1单元-管道和中间件简介相关的知识,希望对你有一定的参考价值。

第1节.概述

我们知道,微软在设计ASP.NET Core之初,就与.NET Framework框架下的ASP.NET在开发模式上是完全重新设计的。

ASP.NET Core底层框架采用先进的设计思路和模式其灵活性和扩展性是非常先进的,且源码是开源的,值得我们扒开去研究和学习。

ASP.NET Core给开发者公开的就是其扩展性,采用模块化、组件化、配置化的开发模式,这都归与依赖注入(DI)的功劳,将DI功能发挥的淋漓尽致。

ASP.NET Core是一个Web开发框架,需要接收和响应HTTP请求,而在处理HTTP请求这一块,微软采用管道的方式进行处理。

第2节.理解管道

2.1. 生活中的管道

在理解ASP.NET Core的管道之前,我们先抛开编程这个概念,使用生活中的管道先来理解一下,然后再深入到编程概念的管道。

一提到管道这个词,相信大家都会联想到自己所住楼房楼道里的管道,例如供水的管道:

图1

在整栋楼道里都会有一个从上到下的管道,用于向各家各户送水,水流到达某楼层之后,就会有分支的管道将水送入到家里,水到达家里的分支管道之后,会再次分支,流到厨房、卫生间、阳台等。

管道在水处理厂出来时,还会经过杀菌、沉淀、过滤等一系列的处理之后,最终将可供人引用的水送到各家。

而管道中一直活动的是水,水在管道中会经历一系列的处理站,每个处理站有自己的功能来处理水,最终处理成达标的水供使用。

管道中水的处理过程如下示意图:


图2

水在管道中,每经过一个处理站就会进去进行处理,处理完再出来,继续进入下一个处理再次处理,依次类推。

2.2. 编程中的管道

对于上面提到的水的管道,相信大家都能够理解其中水处理的过程。

而对于ASP.NET Core中的管道,所处理的是HTTP请求。

HTTP请求是指用户在浏览器中输入网址访问,或在表单上提交表单,如在淘宝网上购物,到结算时,就会发起HTTP请求进行付款。

简单的理解:只要用户在浏览器中使用按钮提交,就会发起一个HTTP请求。

哪怕是一个简单的在浏览器中输入一个网址,打回车键后就是一个HTTP请求。

对于HTTP请求,就可以理解为水管中的水,HTTP请求=水。

而HTTP请求(Request)被服务器监听到后会接收,服务器接收到HTTP请求后,需要进行一系列的处理,如错误处理、认证处理、路由处理、静态文件处理等等。

这些对HTTP请求的处理(错误处理、认证处理、路由处理、静态文件处理)可以理解为水管中的杀菌、沉淀、过滤等处理。

在ASP.NET Core的管道中,这些具有处理功能的组件称为中间件。

错误处理、认证处理、路由处理、静态文件处理这些都是中间件。

对应于水管中的处理站,处理站=中间件。

编程中的管道示意图如下:


图3

图3中的每个中间件都有自己的特殊功能用于处理HTTP请求。

ASP.NET Core中的管道具有回路,经过一系列的中间件处理之后,构造出最终的Response,这个Response就是服务器响应客户端的内容,返回给客户端。

这也是为什么,当我们访问某一个网站,输入网址后,打回车键,过一会儿就能看到网站的首页了,这个首页显示的内容,就是服务器响应后返回给我们的结果。

以上是关于第1单元-管道和中间件简介的主要内容,如果未能解决你的问题,请参考以下文章

服务器在管道中的“龙头”地位

kafka简介和术语

net core 中间件和管道

中间件canal概述

.NET Core 管道模型中间件及管道模拟实现

精:.NET Core 管道模型中间件及管道模拟实现