• 关于Net Core中处理Http请求的一些理解


    上篇记录了一下Net Core之所以跨平台的根本 -- Kestrel服务器

    那么一个Http请求究竟是如何被处理的呢

     浏览器中输入一个要访问的地址 => 然后经过DNS解析 => 拿到IP + Port =>IIS将请求解析为HttpContext => 交给Net FrameWork  

       浏览器中输入一个要访问的地址 => 然后经过DNS解析 => 拿到IP + Port =>IIS/Apache/Ngix 转发 => Kestrel 监听端口 解析为HttpContext  =>请求转发到代码

    在Net Core中 请求转发到代码之后  进入Program   Main方法之后  Net Core 控制台程序会启动一个Host主机 具体配置项在 CreateHostBuilder 方法里 

     在CreateHostBuilder 方法里完成对 Startup类的初始化 

     Startup类中 一般会有 构造函数,Configuartion(框架调用的给依赖注入容器配置服务实例) 和 Configure(配置http请求过程 中断middleware 全部请求都会被该中间件处理 以前的流程全部失效 相比于framework功能级的层面 现在是全部请求的处理过程的请求级层面)  

    请求在configure一层一层逐个执行中间件  最后一层一层逐个返回  如下图

    总结起来就是 pay for what you use 而区别于之前的pay for all 

    这也是Net Core http管道处理模型的精髓 

    以上仅是本人个人体会与总结,如有错误之处,还望斧正

  • 相关阅读:
    java学习--工具类学习之Arrays(1)
    509. 斐波那契数
    572. 另一个树的子树
    cmd中的标准文件重定向
    ng正则使用(持续更新)
    MySQL基准测试
    mysql_connect 弃用之后使用mysqli替换需要注意事项
    数据迁移到rds时候犯下的低级错误
    MySQL 架构与历史
    mysql中涉及到钱的字段如何设计
  • 原文地址:https://www.cnblogs.com/zhangxiaoxia/p/12450202.html
Copyright © 2020-2023  润新知