如何使用 Go 建立基本的 Web 伺服器

如何使用 Go 建立基本的 Web 伺服器

Go 是一種有趣的程式語言,用於建立現代 Web 應用程式和系統軟體。它發布後引起了巨大的轟動,並為 Docker、Kubernetes、Terraform、Dropbox 和Netflix 等服務提供支援。

此外,Go 強大的內建套件集合使其成為 Web 程式設計的絕佳選擇。本文將向您展示如何用 Go 編寫一個基本的Web 伺服器。

導入必要的套件

net/HTTP 套件提供了創建 Web 伺服器和用戶端所需的一切。這個包提供了一些處理網路程式設計的有用函數。

您可以透過將以下行新增至原始程式碼的開頭來匯入它:

import "net/http"

本文也將使用fmt包來格式化字串,並使用log包來處理錯誤。您可以如上所示單獨匯入它們,或使用單一匯入語句匯入所有套件:

import (
"fmt"
"log"
"net/http"
)

導入必要的套件後就可以繼續寫main函數了。繼續並使用.go副檔名儲存原始檔。如果您使用 Vim,請使用以下命令儲存並退出 Vim:

:wq server.go

編寫主函數

Go 程式直接駐留在主函數中,恰當地命名為「main」。您需要在此處進行伺服器調用。將以下行新增至原始程式碼並查看它們的作用:

func main() {
http.HandleFunc("/", index)
log.Fatal(http.ListenAndServe(":8080", nil))
}

此範例使用func關鍵字定義 main 函數。 Go 對左大括號的位置有嚴格的規則,因此請確保起始大括號位於正確的行上。 main 中的第一個語句定義了對根路徑 ( "/" ) 的所有 Web 請求都將由 index 處理,index 是一個http.HandlerFunc類型的函數。

第二行透過http.ListenAndServe函數啟動 Web 伺服器。它會向伺服器發出訊號,使其持續偵聽伺服器連接埠 8080 上傳入的 HTTP 請求。該函數的第二個參數用於阻止程式直到結束。

由於http.ListenAndServe始終傳回錯誤,因此此範例將此呼叫包裝在log.Fatal call 中。該語句記錄伺服器端產生的所有錯誤訊息。

實現處理功能

可以看到,main函數呼叫了處理函數index來處理客戶端請求。但是,該範例尚未為其伺服器定義此功能。

讓我們新增必要的語句以使索引函數可用:

func index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, welcome to %s!", r.URL.Path[1:])
}

此函數採用http.ResponseWriterhttp.Request類型的兩個不同參數。http.ResponseWriter參數包含伺服器對傳入請求的回應,採用http.Request物件的形式。

fmt套件中的函數Fprintf用於顯示和操作文字字串。本文使用它來顯示伺服器對 Web 請求的回應。最後,r.URL.Path[1:]元素用於取得根路徑之後的資料。

添加所有剩餘部分

添加完所有剩餘元件後,您的 Go Web 伺服器將準備就緒。程式碼如下所示:

import (
"fmt"
"log"
"net/http"
)
func index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hi there, welcome to %s!", r.URL.Path[1:])
}
func main() {
http.HandleFunc("/", index)
log.Fatal(http.ListenAndServe(":8080", nil))
}

第一行需要將此 Go Web 伺服器程式碼編譯為可執行檔。

如何使用 Go 建立基本的 Web 伺服器

將此 Go Web 伺服器程式碼編譯為可執行文件


如何刪除 Windows 10 螢幕右上角的版權請求通知

如何刪除 Windows 10 螢幕右上角的版權請求通知

您是否在螢幕右上角看到 Windows 10 啟動通知?本文將指導您如何刪除Windows 10上的版權請求通知。

AZ 有關如何安裝 Windows 10 內部版本 14393.222 的說明

AZ 有關如何安裝 Windows 10 內部版本 14393.222 的說明

最近微軟為Windows 10 PC用戶發布了最新的累積更新,名為Build 14393.222。這次針對Windows 10發布的更新主要根據使用者回饋修復了Bug,並提升了作業系統的效能體驗。

只需 3 步驟即可使用 Bastion 主機保護您的電腦網絡

只需 3 步驟即可使用 Bastion 主機保護您的電腦網絡

您的本機網路上是否有需要外部存取的電腦?使用堡壘主機作為網路的看門人可能是一個很好的解決方案。

如果您的鍵盤無法使用,如何建立 Windows 鍵

如果您的鍵盤無法使用,如何建立 Windows 鍵

如果您喜歡使用舊的經典鍵盤,例如 IBM Model M,它不包含實體 Windows 鍵,那麼有一個簡單的方法可以添加更多按鍵,即藉用您不經常使用的鍵。

快速清除Windows 10中所有事件日誌的3種方法

快速清除Windows 10中所有事件日誌的3種方法

有時您可能需要一次刪除所有舊的事件日誌。在本指南中,Quantrimang.com 將向您展示 3 種快速刪除 Windows 10 事件檢視器中所有事件日誌的方法。

假IP方式幫助您匿名訪問

假IP方式幫助您匿名訪問

在之前的許多文章中,我們已經提到在線保持匿名非常重要。私人資訊每年都會被洩露,使得網路安全變得越來越必要。這也是我們應該使用虛擬IP位址的原因。下面,我們就來學習製作假IP的方法!

如何在 Windows 10 上建立透明背景模式

如何在 Windows 10 上建立透明背景模式

WindowTop 是一款能夠調暗 Windows 10 電腦上運行的所有應用程式視窗和程式的工具。或者您可以在 Windows 上使用深色背景介面。

如何關閉 Windows 8 工作列上的語言列

如何關閉 Windows 8 工作列上的語言列

Windows 8 上的語言列是一個微型語言工具列,旨在自動顯示在桌面螢幕上。然而,很多人想在工作列上隱藏這個語言欄。

如何為 Linksys 路由器設定 WEP、WPA、WPA2

如何為 Linksys 路由器設定 WEP、WPA、WPA2

無線連接是當今的必需品,因此,無線安全對於確保內部網路的安全至關重要。

Linksys 優化網路連線速度的技巧

Linksys 優化網路連線速度的技巧

最大限度地提高網路速度對於優化網路連線至關重要。您可以使用電腦、可上網的電視、遊戲機等獲得最佳的娛樂和工作體驗。