通識課06.軟體開啟方式-網路通訊

在網路開始流行之後,網路通訊成為了許多開啟或執行不同應用程式的主要方式,我們就來看看在網路通訊上的軟體是如何執行的?

伺服器上的服務軟體

還是執行檔,通常為「服務」

無論任何網路通訊,我們其實還是再執行某些「執行檔」,舉例來說,今天我們架設一個網頁伺服器時,網頁伺服器其實也是一個執行檔,我們這邊以目前近幾年最多人使用的網頁伺服器軟體「Nginx」為例子。

我們先直接從Nginx的官方網站下載最新的版本來來看,並讓大家瞭解下伺服器的運作概念:

我們下載完檔案後:

  1. 先解壓縮可以看到「nginx.exe」的執行檔在解壓縮的資料夾中(左上)。
  2. 開啟「nginx.exe」這執行檔(右上)。
  3. 我們可以在(左下)工作管理員(Task Manager)中的詳細(Details)找到它正在執行的狀態。
  4. 如前面所說,Nginx是一個「網頁伺服器軟體」
    1. 我們可以透過瀏覽器開啟網頁。
    2. 網址尚書入的「localhost」代表當前自己電腦的網址。
    3. 開啟後會看到預設的Nginx歡迎頁面(右下)。

當然,通常我們安裝好的伺服器不是直接點兩下執行,而是會被設定為之前「通識課04.軟體開啟方式-都是執行檔!」提到的「服務」。這樣一來,我們電腦開啟時,就會自動「啟動」這些軟體,並持續的運作。我們就能讓要來我們網站的人可以隨時來,並看到網站中的內容。

這就像是大家現在看到我的文章一樣,我們隨時都可以可以透過瀏覽器開啟網址,並看到這些網頁和文章,就是因為我在伺服器上開啟並持續運作著Nginx。

主從式架構(Server&Client)

上面我們執行「nginx.exe」的程式後,再透過瀏覽器輸入網址localhost,實際上就是在對「nginx.exe」的程式進行網路的通訊。當然前提是我們知道Nginx就是網頁伺服器,它具備這樣的功能,我們才能跟它正確地通訊。

那Nginx在開啟後,會一直等待通訊,預設會永遠都在等待,直到我們把它關閉。我們簡單稱這種軟體為「提供服務」的軟體,或是「服務端」,工作中通常會直接用英文的「Service」來代表它。

而有安裝Nginx這Service的電腦,我們稱它為Nginx的「伺服器端」,或稱為「Server」。

相對於提供網頁服務的「Server」,瀏覽器提供我們與Server通訊的功能,而通常是接受服務的一方,我們稱為「客戶端」或直接用英文「Client」來代表它。

請求、處理和回應

在網頁應用程式中,跟其他應用程式一樣,所以當然它們都有「輸入」、「處理」和「輸出」的概念。

請求(Request)

在瀏覽器(Client)上輸入完網址並按下Enter時,瀏覽器會將它(網址)和我們電腦中的一些資料整理打包並一起傳送到伺服器(Server),其中包含網址、IP位置、瀏覽器版本、Cookie記錄等資料

這個動作我們稱做「請求(Request)」我們後面統稱「Request」,與軟體程式中的「輸入」概念完全相同。

處理

而伺服器(Server)在收到Request時,會依據Request中傳遞的資料,來進行「處理」,這部分也與前面提到過的「處理」完全相同。

回應(Response)

最後伺服器(Server)的處理期間,伺服器會判斷並準備要回覆給客戶端(Client)的畫面或資料內容,並在處理完後進行回覆。

這個動作我們稱做「回應(Response)」,我們後續統稱「Response」,而這動作也與軟體程式中的「輸出」概念完全相同。

由此可見,網頁服務符合了輸入、處理和輸出的流程,也可以稱為一個完整的軟體功能,並依據此方式各種軟體架構推出了自家的網頁軟體開發方式。

最後造就了今日世界上最多的軟體程式就是「網頁應用程式」

其他網路軟體功能都差不多

平常我們網路上的各種軟體功能,像是網頁、通訊、遊戲、雲端服務等,這些需要網路的軟體,它們都是先建立起執行檔,開啟作為服務,並持續等待著接收通訊,成為Server的概念

接著也需要一個執行檔,開啟與Server建立通訊,並依據事先設計好的通訊方式來與伺服器端進行「輸入」、「處理」和「輸出」的流程,成為Client的概念。

最終達成我們想要的各種網路軟體功能,造就了今日的網路資訊時代!