安徽网站优化价格咨询,连云港建设网站,网络营销常见的工具,中国纪检监察引言接上文#xff0c;容器内web程序一般会绑定到http://0.0.0.0:{某监听端口}或http://:{某监听端口}#xff0c;以确保使用容器IP可以访问到web应用。正如我们在ASP.NET Core官方镜像显示的#xff0c;ASP.NET Core程序在容器内80端口监听请求This image sets the ASPNETC… 引言接上文容器内web程序一般会绑定到http://0.0.0.0:{某监听端口}或http://:{某监听端口}以确保使用容器IP可以访问到web应用。正如我们在ASP.NET Core官方镜像显示的ASP.NET Core程序在容器内80端口监听请求This image sets the ASPNETCORE_URLS environment variable to http://:80 which means that if you have not explicity set a URL in your application, via app.UseUrl in your Program.cs for example, then your application will be listening on port 80 inside the container.http://:80是什么鬼请求为什么会被路由到监听http://:80地址的web服务器UrlPrefix这里涉及一个不为人知的概念UrlPrefixUrlPrefix是统一资源定位符Url的前缀部分scheme://host:port/relativeURIhttps://www.adatum.com:80/vroot/https://adatum.com:443/secure/database/http://:80/vroot/web程序启动后根据监听地址UrlPrefix中的主机元素会向系统组件Http Server API注册不同的路由桶由Http Server API将接收的请求路由到合适的web程序。容器内web程序监听http://:80地址 是强通配符意味着web程序在容器轻量级虚拟机内以任意主机名监听80端口的请求。监听地址UrlPrefix 中的主机元素有四种形态强通配符 ( )当主机元素是一个加号UrlPrefix匹配所有可能的主机名这时的UrlPrefix属于强通配符类别。强通配符在如下场景下有用当web程序要忽略请求到达的方式或忽略请求host标头中指定的站点时web服务器监听地址的主机元素可设置为强通配符显式主机名当主机元素是完全限定的域名web服务器的主机元素直接与传入请求的host标头相匹配 明确的主机名对于多站点很有用这些Web站点根据请求所指向的站点传递不同的内容。绑定IP的弱通配符主机元素为IP地址这种类型的UrlPrefix匹配尚未与以上强通配符或显式主机名匹配的任意IP地址主机名弱通配符 ( * )当星号*作为主机元素出现时 这种类型的UrlPrefix将会匹配尚未与以上强通配符、显式或IP绑定的弱通配符匹配的任意主机名 此主机元素可以用作默认的catch-all也可以用于指定URL名称空间的较大部分而不必使用许多UrlPrefixesHttp Server API维护了一张路由表决定哪一个应用程序接收传入请求这张路由表是从预留数据库中构建的,当新产生一个注册项或预留项将会被放进与特定主机元素相关的路由桶路由桶优先级当多个web程序监听的UrlPrefix有重叠时Http Server API会根据注册的1--4路由桶依次匹配路由桶中UrlPrefix的相对URI部分中最长的匹配假设URL的主机端口和方案部分完全匹配是最佳匹配。在路由桶中找到匹配项后路由算法将停止搜索并跳过所有优先级较低的存储桶。例如下面的注册项注册项: https://:80/vroot/ is registered by app1注册项: https://adatum.com:80/ is registered by app2注册项: https://*:80/ is registered by app3对https://adatum.com:80/vroot/subdir/file.htm/的传入请求路由给 app1对https://adatum.com:80/default.htm/的传入请求路由给 app2对https://otheradatum.com:80/file.htm/的传入请求路由给 app3总结HTTP Sever API 提供了将请求路由到web程序的机制应用程序监听地址UrlPrefix的主机元素决定了路由策略其中强通配符 表示忽略请求主机名和请求的方式可以认为是囫囵吞枣的接收满足scheme、port、relativeUrl的请求。多个web程序监听的UrlPrefix有重叠时Http Server API根据host元素形成的路由桶有优先级这应该是一篇很冷门的知识点但是结合我们的实际和理论相信能给读者的知识结构添砖加瓦。https://docs.microsoft.com/zh-cn/windows/win32/http/urlprefix-strings?redirectedfromMSDNhttps://docs.microsoft.com/en-us/windows/win32/http/routing-incoming-requestshttps://stackoverflow.com/questions/7007929/what-does-a-plus-sign-mean-in-a-http-url-http-80推荐阅读● 这么香的Chrome插件你都安装了吗● 一文掌握Cookies前世今生● ASP.NET Core跨平台技术内幕● TPL Dataflow组件应对高并发,低延迟要求● 实例解读Docker Swarm● 基于docker-compose的Gitlab CI/CD实践排坑指南