從頭開始在 Rust 中構建多線程 Web 服務器

https://www.c-sharpcorner.com/article/building-a-multithreaded-web-server-in-rust-from-scratch/

建立多執行緒的 Rust 網頁伺服器是探索 Rust 的並行特性的絕佳方式,其針對效能和安全性的專注使其成為系統編程的不錯選擇。在本文中,我們將建立一個簡單的 Rust 多執行緒網頁伺服器,而不使用第三方網頁框架。除了處理基本的 HTTP 請求和提供靜態文件外,我們還將看到如何使用線程池進行並行處理。

建立專案
首先,讓我們建立一個新的 Rust 專案並配置必要的相依性。

寫網頁伺服器代碼
`main.rs` 檔案
取代 ‘src/main.rs’ 的內容為提供的程式碼。

`lib.rs` 檔案
在 ‘src’ 目錄中建立一個名為 ‘lib.rs’ 的新檔案,並添加提供的程式碼。

建立靜態 HTML 檔案
現在,在 ‘src’ 目錄中建立兩個靜態 HTML 檔案,’hello.html’ 和 ‘404.html’。

執行網頁伺服器
現在,讓我們執行我們的網頁伺服器。在終端機中執行以下指令。

解釋程式碼
最後,我們檢視程式碼以理解我們的網頁伺服器是如何運作的。

主要功能
在 `main` 函式中,我們建立一個 ‘TcpListener’ 綁定到位址 ‘127.0.0.1:7878’。我們也創建一個包含 4 個執行緒的 ‘ThreadPool’。

處理連線
`handle_connection` 函式從用戶端讀取 HTTP 請求,並根據所請求的路徑確定適當的回應。

執行緒池實作
‘執行緒池’ 結構管理一組工作執行緒。每個工作執行緒都在一個迴圈中運行,等待要執行的工作。

總結
總結來說,我們在 Rust 中建立了一個基本的網頁伺服器,而沒有使用花俏的工具。這個伺服器可以同時處理多個任務並提供網頁。這就像是在 Rust 中打下了一個創建更先進網站基礎的基石。所以我們已經踏入了 Rust 的 Web 開發世界,保持事情簡單和實用。

via C-Sharpcorner Latest Articles

December 19, 2023 at 05:01PM

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *