4.1ASP.NET Core请求过程「深入浅出ASP.NET Core系列」

希望给你3-5分钟的碎片化学习,可能是坐地铁、等公交,积少成多,水滴石穿,谢谢关注。

HTTP请求过程

这里展示整体的HTTP请求的过程,这里化繁为简,保留了主干流程:

从浏览器输入域名开始,这里忽略了建立TCP的3次握手,向服务器发起HTTPRequest请求,服务器接受到之后,会触发服务器对网站的动态解析,然后把生成的网页信息通过HTTPResponse返回给用户,内部包含HTML的Body,Head等信息,最后就是浏览器对这些HTML信息进行内部引擎渲染的过程了。

ASP.NET Core请求过程

ASP.NET Core是整个HTTP请求的一个环节,这个环节都做了哪些工作呢?

如图所示,整个请求流程更加细化,特别是ASP.NET Core Application进行了放大,内部包含很重要的两个组建,一个是Kestrel,一个是管道,而管道不是一个,可以是多个,使用的委托方式,可以无限扩展。

ASP.NET Core Application

ASP.NET Core Applicaton进一步放大,可以了解到,Kestrel其实在这里并没有做真正的核心处理,只是做一层封装为HttpContext,并往下传。真正处理请求的是管道,管道其实就是RequestDelegate,处理完成后封装成HttpContext进行回传,当然,HttpContext内含HttpRequest和HttpResponse。以上只是一个初略的描述,但是作为开发来说,有个初步印象就可以了,再细化下去,已经超过碎片化时间,先打住,如果要继续深究,请关注我后面的专题内容。

我是张飞洪,入行10年有余,人不堪其忧,吾不改其乐,谢谢您关注我的头条号

原文地址:https://www.cnblogs.com/jackyfei/p/9927065.html

时间: 2024-10-04 16:01:02

4.1ASP.NET Core请求过程「深入浅出ASP.NET Core系列」的相关文章

目录导航「深入浅出ASP.NET Core系列」

希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 入门篇 1.1课程介绍「深入浅出ASP.NET Core系列」 1.2环境安装「深入浅出ASP.NET Core系列」 1.3创建项目「深入浅出ASP.NET Core系列」 1.4部署到IIS「深入浅出ASP.NET Core系列」 1.5准备CentOS和Nginx环境「深入浅出ASP.NET Core系列」 1.6部署到CentOS「深入浅出ASP.NET Core系列」 2.1命令行和JSON的配置「深

1.4部署到IIS「深入浅出ASP.NET Core系列」

很多人第一次在IIS中部署Asp.Net Core App的人都会遇到问题,会发现原来的部署方式无法运行Asp.Net Core App程序.其实大的方式没有多少变化,Asp.Net Core App为了做到跨平台,自带了一个轻量级的Web Server-Kestrel,那么要在IIS中部署Asp.Net Core App,就必须有一种新的机制来协调IIS与Kestrel Server之间的数据传递 Asp.Net Core的部署模式 与传统的Asp.Net程序不同,Asp.Net Core A

1.1专题介绍「深入浅出ASP.NET Core系列」

大家好,我是架构师张飞洪,专注于.NET平台十年有余. 工作之余喜欢阅读和写作,学习的内容包括数据结构/算法.网络技术.Linux系统原理.数据库技术原理,设计模式.前沿架构.微服务.容器技术等等…… 喜欢但不限于,Java.C.C++.Python.Javascript……Wait……不装了,因为我也还在学习的路上,愿你我一起终生学习. 定调 这里先给整个文章的系列定一个调调,起名深入浅出ASP.NET Core系列.深入的目的是希望能了解底层机制,浅出是为了学习能不让自己那么枯燥,给自己定个

2.4配置的热更新「深入浅出ASP.NET Core系列」

希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 大家知道通常我们修改网站的配置文件比如,webconfig的时候,网站需要重启才能读取到最新的修改,所谓热更新就是网站无需重启,修改完配置文件,直接F5就可以看到效果如下图所示: 修改IOption为IOptionsSnapshot 上一节当中我们使用IOption来作为注入,这次我们改成IOptionSnapshot,注意如果我们是在Controller里也是一样的,见下图 修改为IOptionsSnapsh

5.3Role和Claims授权「深入浅出ASP.NET Core系列」

希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注. Role授权 这是一种Asp.Net常用的传统的授权方法,当我们在生成Token的时候,配置的ClaimTypes.Role为Admin,而ValuesController.cs是一个普通user(如下图所示),我们看下是否能访问成功? 我们把生成的Token通过JWT官网验证一下,发现多了一个"role":"admin" Postm

1.3创建项目「深入浅出ASP.NET Core系列」

控制台创建项目 dotnet new --help 使用控制台采集项目,务必要熟练使用命令,--help是命令帮助的指明灯,在你无法google的时候,可以离线状态最快的帮助到你. 根据模板名称,我们可以创建各种模板,比如 dotnet new webaipdotnet new mvc…… 运行命令: dotnet run VS2017创建项目 都是创建,只是采集的方式不一样,殊途同归,前者适合ubuntu或者mac系统的操作方式,后者适合window底下的操作方式. Asp.net支持自寄宿,

1.2环境安装「深入浅出ASP.NET Core系列」

官网 在介绍安装环境之前,先介绍周边信息,比如微软net官网. https://www.microsoft.com/net 这个网站是学习微软技术栈比较权威的地方,包括环境下载,学习,架构,文档,社区等等非常有价值的内容. 1.1下载.NET Core 下载网址:https://www.microsoft.com/net/download 微信支付 在逛这个网站的时候,偶然发现微信支付用的微服务就是基于.NET Core技术栈,视频里你还可以看到张善友本人(张善友是微软MVP,.NET Core

2.2Bind建立配置文件和实体的映射「深入浅出ASP.NET Core系列」

希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,谢谢关注. 新建MVC项目 这次我们没有使用控制台项目,而是使用mvc来测试. 如下图所示,选择空的项目,建完后,记得把项目设置为启动项 新建配置文件appsettings.json和映射的实体类 这里有个坑,就是json和实体类必须要一一对应,假如json里命名为student,实体类为students,内部自动映射过程会报错,错误如下: Startup启动时注入配置类Configuration 这里就不贴上代码,代码在

2.1命令行和JSON的配置「深入浅出ASP.NET Core系列」

命令行配置 1.新建控制台项目 2.nuget引入microsoft.aspnetcore.all 这里要注意版本号必须和dotnetcore兼容 3.编码 3.1.引入Microsoft.Extensions.Configuration; 3.2.AddCommandLine() 添加到命令行 3.3.AddInMemoryCollection 添加到内存当中 3.4.代替string.format的新语法糖:$"age:{configuration["age"]}&quo