iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 7
0
Software Development

新手後端工程師的學習歷程系列 第 7

Day 7 - 網頁伺服器到底是什麼?

tags: 2019鐵人賽 網頁伺服器

前言

其實我在 鐵人賽 Day 5 - PHP 應用程式環境架設 Part III 就有提到"網頁伺服器"是什麼。

但是以我自己這個新手後端工程師而言,我還是搞不懂為什麼非得要安裝網頁伺服器的軟體阿,所以我這邊打算用自己理解的方式來回答這個問題

網頁伺服器

再來看一次 網頁伺服器 - 維基百科 的定義,我個人比較偏好第二個解釋。

對於網頁伺服器而言,關鍵不在有沒有電腦,而是有沒有控制它的應用程式,否則你以為遠端連線到另外一台電腦就算是網頁連線了嗎?

當然不是!
看看裡面提到的

1. 遵守 HTTP 協議

雖然每個網頁伺服器程式有很多不同,但有一些共同的特點:每一個網頁伺服器程式都需要從網路接受HTTP請求,然後提供HTTP回覆給請求者。HTTP回覆一般包含一個HTML檔案,有時也可以包含純文字檔案、圖像或其他類型的檔案。

由此可知,網頁的溝通除了連線之外,最基礎的還是使用者提出"網路請求( request )",而伺服器提供一個"回應( response )"回去,而這一來一往都要遵守 HTTP 的協議。

2. 指向網頁伺服器(電腦)的根目錄

一般來說這些檔案都儲存在網頁伺服器的本地檔案系統裡,而URL和本地檔名都有一個階級組織結構的,伺服器會簡單的把URL對照到本地檔案系統中。當正確安裝和設定好網頁伺服器軟體,伺服器管理員會從伺服器軟體放置檔案的地方指定一個本地路徑名為根目錄。

這點倒是不難理解,就是使用者透過 URL 連線到電腦,但僅僅是連線到我們指定的資料夾,並不是把整個電腦的操作權限交給他。

應用程式伺服器

這又跟網頁伺服器有什麼關係?

先讓咱們回到 Day 2 - 誰來翻譯 PHP。應用程式伺服器負責處理 HTTP 之外的語言。

由於網頁伺服器只負責處理 HTTP 的部分,所以想當然而要別人去負責處理其他語言的檔案,所以只要安裝好應用程式伺服器,而且網頁伺服器也設定好什麼檔案要給它處理。

這也是為什麼 XAMPP 要安裝 Apache 這個網頁伺服器的原因了!

Apache vs nginx

截至2017年10月,光兩個網頁伺服器的市佔率就已經83%,網路上對這兩個的差異也很多比較。

我稍微整理一下

  • 在有限資源下,用 nginx 較能處理更多連線。最大的差異在連線處理方式:Apache 是一個蘿蔔一個坑,不拔蘿蔔不出坑,nginx 是取號碼牌等叫號,叫號快速做完就走
  • Apache 處理動態網頁較優,nginx 處理靜態網頁較優
  • 兩著設定檔的寫法略有不同

上一篇
Day 6 - 資料庫由來
下一篇
Day 8 - PHP 基礎語法 part I
系列文
新手後端工程師的學習歷程30

尚未有邦友留言

立即登入留言