在真正開始進入 web 開發之前,我們必須要好好的理解 web 會用到的名詞與其運作原理,這樣在開發時才不會不清楚自己在做什麼,至於今天要說什麼呢,就讓我們繼續看下去~
我們可以先了解一下,在瀏覽器的 search bar 中輸入網址按下 enter 到網頁顯示的這段過程中到底會發生了哪些事情,首先我們先看張圖
這張圖顯示了要透過網址存取一個網站的簡略流程,在這當中可以發現幾項資訊
1.客戶端(Client)
2.IP
3.網址(https://www.google.com)
4.DNS
5.網頁伺服器(Server)
6.Request
7.Response
首先我們針對以上的名詞做非常非常簡單的定義
使用者用來存取網頁的應用程式,常見的像是由 Google 所提供的 chrome 、Mozilla 所提供的 Firefox 或是微軟的 Edge,這些應用程式的作用在於與不同的網頁伺服器進行交流。
【備註】整台電腦也可以稱為客戶端,因為我們不一定是使用瀏覽器對伺服器進行交流,像是我們可以透過 command line 輸入 curl https://www.google.com 進行存取,這時候客戶端就變成了 terminal 了。
我們經常聽人家說查到你的 IP ,那 IP 到底是一個什麼東西呢?其實 IP 就是 Internet Protocol 的縮寫,位於OSI模型中網路層裡一個通訊協定,每一台機器都會有一個獨立的 IP 位置,主要的功能在於讓網際網路中的 client 端可以找到我們,其實就把它想成是網際網路中的 門牌位置 即可。
IP 的組成為四組數字(如下),每個數字中由小數點進行分隔
125.227.112.3
關於更詳細的 IP 介紹大家可以到這邊來看。
為 Domain Name System 的縮寫,主要的功用在於查詢並轉換 網址 與 IP。
詳細的 DNS 介紹大家可以到這邊來看。
用於轉換一個或是多個 IP 的位置,主要是因為 IP 位置又長又難記,因此使用了網址來進行轉換
大家可以發現在網址之前都會 http:// 或是 https:// 的出現,那這是什麼呢?
http 位於 OSI模型的第七層,是超文本傳輸協定(Hyper Text Transfer Protocol)的縮寫,主要的目的在於提供一種發佈與接收 html 頁面的方法。
廣義的定義為可以連線到網際網路、具 IP 位置並且可以處理外來 Request 的機器,常見的 Web Server 有 nginx、IIS、Apache 等等。
【備註】伺服器不一定要具有對外的 IP,如果前面有一台負載平衡器的話就可以不需要,至於什麼是負載平衡器,這個未來我們會另外開一集單獨說明(老高口吻)。
在這邊我們所提的 Request 就是 Http 請求,然而要執行請求有著特定的 方法,以下分別介紹常見的幾種方法
用於 取得 特定資料,意思就是不對資料做任何的修改,基本上可以理解為單純要 看 資料所使用的方法。
用於 提交 資料,基本使用的情境就是在 建立 資料。
用於 取代 現有資料,使用此方法必須將資料的內容完整的提交,沒有在提交內容中的資料會遺失。
用於 修改 資料,只需要提交要修改的內容即可。
用於 刪除 資料,使用此方法會刪除特定資源。
http 的回應通常都是以 status code 來分辨目前的情況如何,status code 為 100 ~ 599 間的數字,基本上依照區間總共分為以下五種
以下介紹常見的 Response
使用 HTTP GET 方法如果沒有問題都會回傳 200,也就是沒有問題的拉!
使用 POST、PUT 或是 PATCH 方法時如果成功的話,都會回傳 201,表示資源被成功的建立。
使用 DELETE 方法如果成功執行,就會回傳 204,表示資源被成功的刪除,沒有任何內容。
更多的 Response 狀態可以參考這裡。
名詞定義完之後,我們可以簡單的就一個透過瀏覽器發出 HTTP GET 請求到看到回應的流程做一個說明。

基本上發出請求後簡略的分成四個步驟(如上圖),以下我們分別講這四個動作在做什麼
https://www.google.com 的 IP 位置HTTP GET 請求。今天主要是跟大家分享在存取一個網站其實背後是做了很多動作的,了解了基本的 Web 概念後,明天我們可以正式的踏入 coding 的世界了,開始使用 Golang 開發一個簡單的 Web,大家拭目以待吧!
【PS】開賽到了第三天,今天終於沒有壓線發文了QQ