在本節中,您將看到ASP.NET Core應用程式如何運行的,從請求URL開始到頁面呈現在瀏覽器中。 為此,您將看到 一個HTTP請求在Web伺服器中是如何被處理的、ASP.NET Core如何擴展該過程以創建動態頁面。 ...
在本節中,您將看到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等平臺上)如圖所示:
謝謝你的閱讀,下節見!如果期待本系列,請點一下推薦!