什麼是 Web 伺服器?
在本文中,我們將解釋什麼是 Web 伺服器,Web 伺服器如何工作以及它們為何重要。
| 先決條件 | 您應該已經瞭解網際網路是如何運作的,並且理解網頁、網站、Web 伺服器和搜尋引擎之間的區別. |
|---|---|
| 目標 | 您將學習什麼是 Web 伺服器,並對它的工作原理有一個基本的瞭解。 |
摘要
術語Web 伺服器可以指硬體或軟體,或者兩者共同工作。
- 在硬體方面,Web 伺服器是一臺儲存 Web 伺服器軟體和網站元件檔案(例如 HTML 文件、影像、CSS 樣式表和 JavaScript 檔案)的計算機。Web 伺服器連線到網際網路,並支援與連線到 Web 的其他裝置的物理資料交換。
- 在軟體方面,Web 伺服器包括幾個部分,用於控制 Web 使用者如何訪問託管檔案。最起碼,這是一個HTTP 伺服器。HTTP 伺服器是能夠理解URL(Web 地址)和HTTP(瀏覽器用於檢視網頁的協議)的軟體。可以透過託管網站的域名訪問 HTTP 伺服器,它將這些託管網站的內容傳遞到終端使用者的裝置。
在最基本的層面上,每當瀏覽器需要 Web 伺服器上託管的檔案時,瀏覽器都會透過 HTTP 請求該檔案。當請求到達正確的(硬體)Web 伺服器時,(軟體)HTTP 伺服器會接受請求,找到請求的文件,並透過 HTTP 將其傳送回瀏覽器。(如果伺服器沒有找到請求的文件,它會返回一個404響應。)
要釋出網站,您需要靜態或動態 Web 伺服器。
靜態 Web 伺服器或堆疊,由一臺帶有 HTTP 伺服器(軟體)的計算機(硬體)組成。我們稱之為“靜態”,因為伺服器按原樣將託管檔案傳送到您的瀏覽器。
動態 Web 伺服器由靜態 Web 伺服器加上額外的軟體組成,最常見的是應用程式伺服器和資料庫。我們稱之為“動態”,因為應用程式伺服器在透過 HTTP 伺服器將內容傳送到您的瀏覽器之前會更新託管檔案。
例如,要生成您在瀏覽器中看到的最終網頁,應用程式伺服器可能會使用資料庫中的內容填充 HTML 模板。像 MDN 或維基百科這樣的網站擁有數千個網頁。通常,這些型別的網站僅由幾個 HTML 模板和一個巨大的資料庫組成,而不是數千個靜態 HTML 文件。這種設定使維護和傳遞內容變得更容易。
更深入的探討
回顧一下:要獲取網頁,您的瀏覽器會向 Web 伺服器傳送請求,Web 伺服器會在其儲存空間中搜索請求的檔案。找到檔案後,伺服器會讀取它,根據需要進行處理,然後將其傳送到瀏覽器。讓我們更詳細地看一下這些步驟。
託管檔案
首先,Web 伺服器必須儲存網站的檔案,即所有 HTML 文件及其相關資產,包括影像、CSS 樣式表、JavaScript 檔案、字型和影片。
從技術上講,您可以將所有這些檔案託管在自己的計算機上,但將所有檔案儲存在專用 Web 伺服器上要方便得多,因為
- 專用 Web 伺服器通常更可用(執行中)。
- 不包括停機時間和系統故障,專用 Web 伺服器始終連線到網際網路。
- 專用 Web 伺服器可以始終擁有相同的 IP 地址。這被稱為專用 IP 地址。(並非所有ISP都為家庭線路提供固定 IP 地址。)
- 專用 Web 伺服器通常由第三方維護。
由於所有這些原因,找到一個好的託管提供商是構建網站的關鍵部分。檢查公司提供的各種服務。選擇一個適合您的需求和預算的服務。(服務範圍從免費到每月數千美元。)您可以在本文中找到更多詳細資訊。
擁有 Web 託管服務後,您必須將檔案上傳到 Web 伺服器.
透過 HTTP 通訊
其次,Web 伺服器提供對HTTP(Hypertext Transfer Protocol)的支援。顧名思義,HTTP 指定了如何在兩臺計算機之間傳輸超文字(連結的 Web 文件)。
協議是一組用於兩臺計算機之間通訊的規則。HTTP 是一種文字化的、無狀態的協議。
- 文字化的
-
所有命令都是純文字,並且是人類可讀的。
- 無狀態的
-
伺服器和客戶端都不會記住之前的通訊。例如,僅依賴 HTTP,伺服器無法記住您輸入的密碼或記住您在未完成的交易中的進度。您需要一個應用程式伺服器來執行此類任務。(我們將在其他文章中介紹這種技術。)
HTTP 為客戶端和伺服器如何通訊提供了明確的規則。我們將在後面的技術文章中介紹 HTTP 本身。現在,您只需要瞭解以下幾點
- 通常只有客戶端會發出 HTTP 請求,而且只能傳送給伺服器。伺服器會響應客戶端的 HTTP 請求。伺服器還可以透過稱為伺服器推送的機制,在請求之前將資料填充到客戶端快取中。
- 透過 HTTP 請求檔案時,客戶端必須提供檔案的URL.
- Web 伺服器必須回答每個 HTTP 請求,至少要給出錯誤訊息。
在 Web 伺服器上,HTTP 伺服器負責處理和回答傳入的請求。
- 收到請求後,HTTP 伺服器會檢查請求的 URL 是否與現有檔案匹配。
- 如果匹配,Web 伺服器會將檔案內容傳送回瀏覽器。如果不匹配,伺服器會檢查它是否應該為請求動態生成檔案(請參閱靜態內容與動態內容)。
- 如果這兩種選項都不適用,Web 伺服器會向瀏覽器返回錯誤訊息,最常見的是
404 Not Found。404 錯誤非常常見,以至於一些 Web 設計師會花大量的時間和精力來設計 404 錯誤頁面。
靜態內容與動態內容
粗略地說,伺服器可以提供靜態或動態內容。請記住,術語靜態表示“按原樣提供”。靜態網站是最容易設定的,因此我們建議您將第一個網站設定為靜態網站。
術語動態表示伺服器會處理內容,甚至會從資料庫中動態生成內容。這種方法提供了更大的靈活性,但技術堆疊更加複雜,這使得構建網站的難度大大增加。
不可能推薦一個通用的應用程式伺服器,它將成為所有用例的正確解決方案。一些應用程式伺服器旨在託管和管理部落格、維基或電子商務解決方案,而另一些則更通用。如果您要構建動態網站,請花時間研究您的需求,並找到最適合您需求的技術。
大多數網站開發人員無需從頭開始建立應用程式伺服器,因為有很多現成的解決方案,其中許多都是高度可配置的。但如果確實需要建立自己的伺服器,那麼可能需要使用伺服器框架,利用其現有的程式碼和庫,並僅擴充套件滿足用例所需的部分。只有相對較少的開發人員需要完全從頭開始開發伺服器:例如,為了滿足嵌入式系統對資源的嚴格限制。如果您想嘗試構建伺服器,請檢視伺服器端網站程式設計學習路徑中的資源。
下一步
既然您已經熟悉了 Web 伺服器,您就可以
- 詳細瞭解在網上做某事的成本
- 詳細瞭解建立網站所需的不同軟體
- 繼續進行一些實際操作,例如如何在 Web 伺服器上上傳檔案。