Go 基礎教程 - 制作簡易服務器

這篇教程以 Go 為核心,主要說明如何使用 Go 語言制作簡易的服務器。在開始這篇 Go 教程之前,你可能需要一些 HTML 的基本知識。這篇教程文章中會展示一些使用 HTML 及 CSS 制作而成的網頁,我們會公開展示這些比較復雜的代碼讓大家動手嘗試,大部分功能也可以用最簡單的 HTML 代碼實現(xiàn)。
得益于 Go 語言中內建的 HTTP 庫,Go 語言在搭建服務器上具有簡單、高效的優(yōu)勢。這篇教程中的服務器通過接受 GET 請求并作出反饋,同時使用 POST 請求處理表單提交等任務。
這篇教程基本涉及三個簡單的流程:
在編寫代碼之前,我們需要在 Go 項目中創(chuàng)建名為 static 的文件夾,然后分別新建 index.html
以及 form.html
兩個文件。
1. 在支持 Go 語言的編輯器中建立 Go 項目,一般初始文件為 main.go

2. 在 Go 項目中創(chuàng)建名為 static 的文件夾,然后分別新建 index.html
以及 form.html
兩個文件。

配置 main.go 文件
在我們的 Go 主程序中,我們需要先導入三個 Go 語言的基本庫。這些庫為 Go 語言內建的標準庫,不需要額外安裝,直接導入即可。
接著,我們來看代碼中的 main()
部分:
我們首先通過 fileServer := http.FileServer(http.Dir("./static"))
鏈接我們事先創(chuàng)建好的文件夾,然后通過 Handle
和 HandleFunc
函數(shù)添加服務器路線。
以 "/hello"
為例,服務器運行后會在網址欄監(jiān)聽 /hello
的請求。當我們在服務器網址后方輸入 http://localhost:8080/hello
時,便會運行相應的程序。
主程序末端的三行代碼主要是確定程序是否正確運行,若程序出錯,代碼便會報錯。
helloHandler 及 formHandler
我們在主程序中創(chuàng)建了 helloHandler
和 formhandler
兩個函數(shù),這兩個函數(shù)分別寫入以下代碼:
helloHandler:
這兩個處理程序使用 Request
檢查路徑是否正確。若路徑不正確,則服務器返 StatusNotFound
,而若程序與 GET
不符合,則會返回 “method is not supported”。若兩者均符合,服務器就會運行下方的程序,在頁面中返回 "hello!"。
formHandler:
在表單處理程序中,我們則通過 ParseForm()
函數(shù)解析所接受的數(shù)據并更新 r.PostForm
以及r.Form
,通過r.FormValue
訪問name
及 address
中的值。最后,我們通過 fmt.Fprintf
將這兩個值寫入 ResponseWriter
中。
編寫 HTML 代碼
這篇文章只需要最簡單的 HTML 網頁代碼以及表單代碼即可,下方的首頁、表單頁面可以通過 Lightly 的快照獲取完整代碼:https://ad57775530-share.lightly.teamcode.com


試運行服務器
完成代碼配置后,我們可以運行程序查看頁面運行效果:

在網址欄中末尾輸入 /hello
,即可返回 "hello!" 文本。

在網址欄中末尾輸入 /form.html
跳轉到表單頁面后,填寫表單并點擊提交即可跳轉到 POST 請求成功頁面。
