希望给你 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