在本節中,您將看到ASP.NET Core應用程序如何運行的,從請求URL開始到頁面呈如今瀏覽器中。 爲此,您將看到 一個HTTP請求在Web服務器中是如何被處理的、ASP.NET Core如何擴展該過程以建立動態頁面。html
HTTP請求在Web服務器中是如何被處理linux
當用戶在瀏覽器中輸入URL並按下回車。 瀏覽器將使用HTTP協將用戶的請求發送到託管Web應用程序的服務器,一旦服務器收到請求,它將根據請求的類型生成相應HTTP響應。 響應多是一個網頁、圖像、JavaScript文件或簡單確認。當瀏覽器接收到響應時,它會將內容在屏幕上呈現給用戶。以下圖所示:windows
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等平臺上)如圖所示:數據結構
謝謝你的閱讀,下節見!若是期待本系列,請點一下推薦!性能
原文出處:https://www.cnblogs.com/VolcanoCloud/p/10313928.html學習