網路 101 |網路伺服器(Web Server)是什麼?|EP 04

更新日期: 2021 年 9 月 25 日

前言

本文為網路系列第四篇文章,若想要更順暢的閱讀本文內容,建議先閱讀下列文章

看完後,才會對下方文字有更清楚的認知。

網路伺服器是什麼?

「網路伺服器」這個詞,可以指「硬體」也可指「軟體」,又或是兩者共同運作的裝置。

當我們理解這個詞時,要先了解背後功能與意涵,才不會造成觀念上混淆。

從硬體角度

網路伺服器就是一台電腦。

那台電腦儲存了數個軟體、網站文件(例如 html 檔案、相片等)。

網路伺服器藉由連接網際網路,以此在 Web(全球資訊網) 提供資料給其他需要的裝置。

從軟體角度

網路伺服器是包含許多軟體的集合體,每個軟體都控制著使用者讀取儲存資料的方式。

我們以最基礎的軟體為例:HTTP 伺服器。

HTTP 伺服器是一個軟體功能,它能識別 URLs(網站網址)與 HTTP(一種瀏覽器與伺服器對話的協議)。

當 HTTP 伺服器判定識別成功後,它就會將儲存的網站內容,傳送到使用者的裝置上(例如:手機)

整體觀察

從最基礎的部分來看,每當網頁瀏覽器需要伺服器存儲的檔案,瀏覽器會以 HTTP 協議方式發出「請求」。

當「請求」正確傳送到網路伺服器(硬體)後,HTTP 伺服器(軟體)會接收到該則請求。

接著,HTTP 伺服器會去尋找瀏覽器需要的檔案,並且同樣以 HTTP 協議方式,將檔案送回瀏覽器。

網頁伺服器與

動態伺服器、靜態伺服器

若你想創造一個網站,你會需要一個靜態或動態的網路伺服器。

靜態網路伺服器

一個靜態網路伺服器,是由一台電腦(硬體)搭配一個 HTTP 伺服器(軟體)。

我們稱其為「靜態」的原因,是因為伺服器回傳給伺服器的檔案,是「事先寫好」的類型。

動態網路伺服器

動態網路伺服器,可以說是靜態伺服器的進階版。

通常它是以靜態伺服器為基礎,再額外新增一些軟體(例如資料庫、應用伺服器)。

我們稱之為「動態」的原因,是因為它回傳檔案時,會自動將檔案調整到最新的內容。

舉例來說,例如維基百科或 MDN 等大型網站,擁有數以千計的網頁。

基本上,該網站通常是由數個 HTML 模板與一個巨大的資料庫組成,而非上千頁的靜態 HTML 檔案。

當瀏覽器想要查看該類網站時,動態伺服器會透過應用伺服器(軟體),從資料庫去抓取內容,再將資料填到既有的 HTML 架構裡。

對於維基百科等大型網站,上述這種回傳方式,才更容易維持與傳送檔案內容。

簡單來說,動態伺服器就像是現煮料理,靜態伺服器就像冷藏料理。

網站可以依據自己的需求,使用合適的網路伺服器。


靜態內容 vs 動態內容

大致上來說,一台網路伺服器可以存放兩種型態的內容:靜態內容與動態內容。

我們回想一下前文內容,「靜態」一詞代表內容是「事先寫好」

由此可知,由靜態內容組成的靜態網站,就是最簡單的架站起步。

我們建議還是新手的各位,若想架設網站可以從「靜態網站」開始著手。

另外,「動態」一詞則表示網站的內容,是由伺服器自行製作而成,或是透過抓取資料庫內容即時生成。

這種做法提供使網站更有彈性,但同時技術需求更加複雜,使製作相關網站的門檻提高許多。

到底該選哪種伺服器技術?

市面上有各種應用伺服器(軟體)的技術,我們無法給予一個大方向的解答。

有些應用伺服器是針對特定需求的網站,例如部落格、維基百科、電子商務。

此外,有些應用伺服器則針對通用的需求去設計。

如果你想要打造一個動態內容的網站,應用伺服器值得你花時間好好研究。

除非,你想要透過自己撰寫程式完成,這樣你就不需要安裝應用伺服器等軟體了。


前面我們談完瀏覽器與網路伺服器之間,如何透過「請求」、「回應」兩個過程,完成資料的傳送。

接下來,我們將針對整個資料傳送的過程,進行更深入的探討。

檔案託管(hosting files)

首先,一台網路伺服器要先儲存網站的檔案、文件。通常包含所有 HTML 檔案,以及其他相關的檔案資源。

例如圖像、CSS 樣式表(網站外觀)、JavaScript 檔案(網站互動程式)、字形與影片等等。

技術來說,我們可以將上述檔案,全部存在自己原有的電腦中。

但儲存在一個網站專用的網路伺服器,能具有以下優點:

  • 專用伺服器通常更加實用(永遠開機且運作)
  • 專用伺服器總是連上網(排除停機時間、系統問題)
  • 專用伺服器可以擁有固定不變 IP 地址,它也被稱為專用 IP 地址(不是每個網路供應商,都能提供此服務給家用網路)
  • 專用伺服器通常由第三方廠商維護

因為以上原因,找到一個良好伺服器提供商,是打造個人網站的關鍵一步。

建議仔細查看各種伺服器廠商提供的服務,從中選出一個適合自己預算與需求的方案。

若你網站的檔案,原先是儲存在自己電腦,記得將檔案上傳到網路伺服器中。


HTTP 溝通方式

檔案託管完成後,網路伺服器還會提供 HTTP(HyperText Transfer Protocol 簡稱) 服務。

HTTP 的中文全名為「超文本傳送協議」。

我們可以從 HTTP 的全名得知,它主要專注在兩台不同的電腦之間,傳送「超文本」(含有超連結的網站檔案)。

另外,「協議」則是兩台電腦之間的溝通語言,它是由成堆的通訊規則組合而成。

白話文來講,HTTP 就是讓兩台電腦間,能夠透過「溝通」互相傳遞檔案的一種「電腦語言」。

HTTP 深入探討

HTTP 通訊協議具有兩大特性:可閱讀、無狀態。

可閱讀

協議內所有的指令,都屬於人類可閱讀、明文(plain-text)的形式

你問:「什麼是明文?是那位民進黨的政治人物陳明文嗎?」

我知道不好笑,但不是歐。

「明文」(或稱為明碼)是一種電腦通訊專用術語。

白話文來講,明文就是電腦預設的文字呈現方式,不會有任何特別字體大小、字型、斜體、黑體等內容。

例如我們在記事本打字的內容,就屬於明文。

無狀態

前面我們說到,伺服器與瀏覽器兩者互動的方式,是透過「請求」與「回覆」兩個動作完成。

「無狀態」的意思,代表伺服器不會去判斷每則「請求」的差異。

舉例來說,若有一位使用者從 Yahoo 奇摩的「首頁」點進查看「新聞」,他的進入路徑為「首頁」→「新聞」

若另一位使用者,是直接在瀏覽器輸入「奇摩新聞」的網址,他的進入不需要進到首頁,就直接為「新聞」。

對於 http 來說,上述兩位使用者的要求,不會因為進入網站的路徑不同,因此產生不同的回應。

我們也稱此現象為「無狀態」。

你好奇:「那什麼是有狀態?」

有狀態就是無狀態的相法,使用者必須要遵循特定的路徑,伺服器才會回應相應的網頁內容。

以往網路購物來說,「購買成交」這個網頁內容,一定要完成付款要求的頁面,才會顯示相應內容。

整體觀察

HTTP 包含了很多技術層面的內容,身為初學者的我們,只需要關注以下要點:

  • 通常只有客戶端(瀏覽器)會發出 HTTP 請求給伺服器,也只有伺服器能回應 HTTP 的請求。
  • 網路伺服器可以在瀏覽器發出請求前,預先將網站的數據放到瀏覽器暫存中,此技術稱為「伺服器推送」。
  • 當瀏覽器透過 HTTP ,向伺服器發出一個網站檔案請求,客戶端必須提供該檔案的網址。
  • 網路伺服器必須回應所有 HTTP 請求,就算是錯誤的訊息也要回應。

我們回顧整個 HTTP 處理流程,它將經歷以下步驟:

1. 接收到網站請求, HTTP 伺服器(軟體)會先查看請求的網址,是否對應實際存在的檔案。

2. 如果存在,網路伺服器(硬體)會回傳該檔案的內容。如果不存在,應用伺服器(軟體)會建立相關檔案。

3. 如果整個回傳流程可行,網站伺服器會傳送一則錯誤訊息給瀏覽器,最常見為「404 Not Found」頁面。

同時,由於 404 錯誤頁面過於常見,有些網站設計師還會花費許多心力,去設計 404 錯誤頁面。


最後,我們可以來看看 google 這間公司,它如何維護自己的伺服器。

以上就是這次的說明,我們下次見!

Similar Posts