iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 3
0
Modern Web

Go into Web!系列 第 3

Day3 | Web 基礎原理介紹

在真正開始進入 web 開發之前,我們必須要好好的理解 web 會用到的名詞與其運作原理,這樣在開發時才不會不清楚自己在做什麼,至於今天要說什麼呢,就讓我們繼續看下去~


我們可以先了解一下,在瀏覽器的 search bar 中輸入網址按下 enter 到網頁顯示的這段過程中到底會發生了哪些事情,首先我們先看張圖

這張圖顯示了要透過網址存取一個網站的簡略流程,在這當中可以發現幾項資訊
1.客戶端(Client)
2.IP
3.網址(https://www.google.com)
4.DNS
5.網頁伺服器(Server)
6.Request
7.Response

首先我們針對以上的名詞做非常非常簡單的定義

名詞定義

客戶端(Client)

使用者用來存取網頁的應用程式,常見的像是由 Google 所提供的 chrome 、Mozilla 所提供的 Firefox 或是微軟的 Edge,這些應用程式的作用在於與不同的網頁伺服器進行交流。

【備註】整台電腦也可以稱為客戶端,因為我們不一定是使用瀏覽器對伺服器進行交流,像是我們可以透過 command line 輸入 curl https://www.google.com 進行存取,這時候客戶端就變成了 terminal 了。

IP

我們經常聽人家說查到你的 IP ,那 IP 到底是一個什麼東西呢?其實 IP 就是 Internet Protocol 的縮寫,位於OSI模型網路層裡一個通訊協定,每一台機器都會有一個獨立的 IP 位置,主要的功能在於讓網際網路中的 client 端可以找到我們,其實就把它想成是網際網路中的 門牌位置 即可。

IP 的組成為四組數字(如下),每個數字中由小數點進行分隔

125.227.112.3

關於更詳細的 IP 介紹大家可以到這邊來看。

DNS

Domain Name System 的縮寫,主要的功用在於查詢並轉換 網址IP

詳細的 DNS 介紹大家可以到這邊來看。

網址

用於轉換一個或是多個 IP 的位置,主要是因為 IP 位置又長又難記,因此使用了網址來進行轉換

大家可以發現在網址之前都會 http:// 或是 https:// 的出現,那這是什麼呢?

http 位於 OSI模型的第七層,是超文本傳輸協定(Hyper Text Transfer Protocol)的縮寫,主要的目的在於提供一種發佈與接收 html 頁面的方法。

網頁伺服器

廣義的定義為可以連線到網際網路、具 IP 位置並且可以處理外來 Request 的機器,常見的 Web Server 有 nginxIISApache 等等。

【備註】伺服器不一定要具有對外的 IP,如果前面有一台負載平衡器的話就可以不需要,至於什麼是負載平衡器,這個未來我們會另外開一集單獨說明(老高口吻)。

Request

在這邊我們所提的 Request 就是 Http 請求,然而要執行請求有著特定的 方法,以下分別介紹常見的幾種方法

GET

用於 取得 特定資料,意思就是不對資料做任何的修改,基本上可以理解為單純要 資料所使用的方法。

POST

用於 提交 資料,基本使用的情境就是在 建立 資料。

PUT

用於 取代 現有資料,使用此方法必須將資料的內容完整的提交,沒有在提交內容中的資料會遺失。

PATCH

用於 修改 資料,只需要提交要修改的內容即可。

DELETE

用於 刪除 資料,使用此方法會刪除特定資源。

Response

http 的回應通常都是以 status code 來分辨目前的情況如何,status code 為 100 ~ 599 間的數字,基本上依照區間總共分為以下五種

  1. 100 ~ 199:資訊回應
  2. 200 ~ 299:成功回應
  3. 300 ~ 399:重新導向
  4. 400 ~ 499:client端錯誤
  5. 500 ~ 599:伺服器端錯誤

以下介紹常見的 Response

200 OK

使用 HTTP GET 方法如果沒有問題都會回傳 200,也就是沒有問題的拉!

201 Created

使用 POSTPUT 或是 PATCH 方法時如果成功的話,都會回傳 201,表示資源被成功的建立。

204 No Content

使用 DELETE 方法如果成功執行,就會回傳 204,表示資源被成功的刪除,沒有任何內容。

更多的 Response 狀態可以參考這裡

流程說明

名詞定義完之後,我們可以簡單的就一個透過瀏覽器發出 HTTP GET 請求到看到回應的流程做一個說明。

基本上發出請求後簡略的分成四個步驟(如上圖),以下我們分別講這四個動作在做什麼

  1. 由使用者在瀏覽器中輸入網址,瀏覽器與透過 DNS 查詢到 https://www.google.com 的 IP 位置
  2. DNS 回傳 IP 給瀏覽器。
  3. 瀏覽器收到 IP 位置後,對該 IP 位置發送 HTTP GET 請求。
  4. 經由 Server 處理完請求之後,發送一個回應給客戶端,客戶端就按照接收到的回應呈現內容。

小結

今天主要是跟大家分享在存取一個網站其實背後是做了很多動作的,了解了基本的 Web 概念後,明天我們可以正式的踏入 coding 的世界了,開始使用 Golang 開發一個簡單的 Web,大家拭目以待吧!

【PS】開賽到了第三天,今天終於沒有壓線發文了QQ

參考資料


上一篇
Day2 | Golang 介紹與環境設定
下一篇
Day4 | 無痛使用 Golang 打造屬於自己的網頁
系列文
Go into Web!30

尚未有邦友留言

立即登入留言