在本節中,您將看到ASP.NET Core應用程序如何運行的,從請求URL開始到頁面呈現在瀏覽器中。 為此,您將看到 一個HTTP請求在Web服務器中是如何被處理的、ASP.NET Core如何擴展該過程以創建動態頁面。
HTTP請求在Web服務器中是如何被處理
當用戶在瀏覽器中輸入URL並按下回車。 瀏覽器將使用HTTP協將用戶的請求發送到托管Web應用程序的服務器,一旦服務器收到請求,它將根據請求的類型生成相應HTTP響應。 響應可能是一個網頁、圖像、JavaScript文件或簡單確認。當瀏覽器接收到響應時,它會將內容在屏幕上呈現給用戶。如下圖所示:
ASP.NET Core如何處理請求
ASP.NET Core應用和瀏覽器之間的交互,和上面所講的過程一樣。它包含了處理請求的所有功能(驗證請求是否有效、登錄以及生成相應的HTML)。如下圖所示:反向代理服務器將請求傳遞給您的應用程序之前捕獲該請求。 在Windows中,反向代理服務器通常是IIS,在Linux或macOS上它可能是NGINX或者Apache(反向代理是負責接收請求的程序,並將請求轉發到合適的Web服務器。 反向代理被暴露到互聯網中,而底層的Web服務器只暴露給反向代理, 這樣做的好處主要是安全性和提高Web服務器性能)。
請求從反向代理轉發到ASP.NET Core應用程序。每個ASP.NET Core應用程序都有一個內置的Web服務器,默認情況下是Kestrel負責接收原始請求並構建內部數據結構(一個HttpContext對象),可供應用程序的其余部分使用,它包含了應用創建響應所需的全部信息。 一旦應用程序處理完請求(通過中間件及應用邏輯),它將返回Web服務器響應。 ASP.NET Core Web服務器將響應轉換為原始HTTP響應,並將其發送回反向代理,反向代理再將響應轉發到用戶的瀏覽器。
ASP.NET Core 的簡介,就介紹到這里,接下來我們進入深入的研究和學習。在這之前,請選為你的ASP.NET Core 應用選擇一個運行的平台,你可以選擇 .NET Core、Full .NET Framework. 如果你的應用沒有依賴Windows的特定功能(注冊表,目錄服務,微軟發布了兼容性包,這使得這些API在.NET Core中可用),那么請選擇.NET Core ,否則請選擇Full .NET Framework。接下來章節所涉及的示例,我們使用windows 10 + Visual Studio 2107 進行演示(不用擔心,這些代碼完全可以運行在linux, macOs等平台上)如圖所示:
謝謝你的閱讀,下節見!如果期待本系列,請點一下推薦!