您好,登錄后才能下訂單哦!
這篇文章給大家介紹Http Server API路由如何請求到web程序,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
容器內web程序一般會綁定到http://0.0.0.0:{某監聽端口}
或http://+:{某監聽端口}
,以確保使用容器IP可以訪問到web應用。
正如我們在ASP.NET Core官方鏡像顯示的,ASP.NET Core程序在容器內80端口監聽請求
這里涉及一個不為人知的概念:UrlPrefix
UrlPrefix是統一資源定位符Url的前綴部分:scheme://host:port/relativeURI
"https://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屬于強通配符類別。
傳入請求的host標頭相匹配
, 明確的主機名對于多站點很有用,這些Web站點根據請求所指向的站點傳遞不同的內容。Http 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
將請求路由到web程序
的機制+強通配符
表示忽略請求主機名和請求的方式,可以認為是囫圇吞棗的接收滿足(scheme、port、relativeUrl)的請求。關于Http Server API路由如何請求到web程序就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。