本篇簡單介紹一些網路世界常用到的名詞
有時會簡稱 C/S 架構,看名稱就可以大概猜出意思是「客戶」和「服務」兩端。Client 是發出請求(request)的一方,Server 收到請求後,會再依據請求的內容,將 Client 想要的東西回覆(response)給 Client。Server 通常會有一個域名(Doman Name)來表示 Server 的位置,Client 才知道請求要發送到哪裡。Server 提供服務,所以資料都會放在 Server 端,Client 透過請求向 Server 拿到資料。
以我們常用的 google 搜尋服務為例,google 是 Server 端,提供了搜尋引擎的服務,使用者們是 Client 端。google.com
是 google 的域名,讓使用者知道請求要發送到哪裡。發送出搜尋 iphone 14
的請求,google 收到請求後,會從它的資料庫中找出有 iphone 14 相關資訊的網頁,回傳給 Client。
瀏覽器就是一個幫助我們上網的程式。在 C / S 架構中,請求和回覆都是 0 / 1 組成,我們很難解讀,而且我們也不知道要如何送出請求。有了瀏覽器,流程會變成這樣:打開 Googl Chrome
或是 Microsoft Edge
瀏覽器,在網址列輸入 google.com
,瀏覽器會幫忙向 google 送出一個請求,拿到的回覆會是 0 / 1 組成的一大坨東西。還好瀏覽器會幫我們翻譯,將看不懂的 0 / 1 轉成 google 搜尋的使用介面。接下來我們就能在使用介面的搜尋框輸入 iphone 14
,按下 Enter 以後,瀏覽器又再次幫我們送出請求,並同樣在拿到回覆後翻譯成一個有許多 iphone 14 資訊的網頁清單。
IP 就是電腦的地址,想要發送請求,需要給定目的地的 IP。那前面提到的範例中,只在瀏覽器網址列填入域名就能發送請求,是怎麼做到的呢?這就要繼續看接下來介紹的 DNS了。
這邊只有簡單把 IP 比喻成電腦的地址,但是實際上背後有著複雜的系統。由於並不是每一台電腦都有一條真正的「線」相連,客戶端和服務端傳送訊息時,其實中間經過很多台其他的節點。節點有可能是伺服器或路由器(Router),路由器是專門用來在不同網路轉送訊息的電腦,轉送訊息的動作叫做繞送(Routing)。中間還有很多複雜的機制,詳細過程就要再去查閱相關資料囉。
全名是 Domain Name System,也就是網域名稱系統。由於 IP 是一串數字組成,不方便人類記憶,所以發展出 DNS,主要的目的是幫忙將域名翻譯成 IP。所以說當我們在網址列輸入 google.com
時,其實是先發送一個請求到 DNS 服務的 IP,而 DNS 服務會將 google.com
翻譯成一個 IP 位址回傳給瀏覽器,這時候瀏覽器才能用這個 IP 去跟 google 搜尋服務連線。
當然這樣的缺點就是要多發送一次請求,所以說電腦通常會將 DNS 翻譯的結果存起來一段時間。這樣接下來一段時間內就不需要每次都去問 DNS Server google.com
到底是對應到哪個 IP 了。這種將結果先存起來的技巧叫做 Cache (快取),在網路的世界是很常見的手法。
聽完前面講的 C / S 架構,我們知道上網時,我們客戶端會去跟服務端拿資料,所以資料和程式的運算主要是在服務端。處理服務端程式邏輯、資料存放的工作通常稱為後端。而前端主要的工作是處理瀏覽器拿到回覆資料後,資料要怎麼呈現給使用者。
但隨著應用程式的使用者介面越來越複雜,現在許多介面的程式邏輯,也都會放在前端,也就是瀏覽器這邊執行。等到之後開始實際寫程式的時候,會再有更詳細的解釋。