網頁

2021/10/2

Golang 建立網頁伺服器 Web Server

Go 建立一個簡單的網頁伺服器的方式如下。


Go建立網頁伺服器的方式非常簡單,直接使用標準函式庫的net/http套件即可。

先使用http.HandleFunc(pattern string, handler func(ResponseWriter, *Request))定義處理URL pattern的請求。

  1. string參數pattern定義URL pattern。
  2. func參數handler為處理請求的邏輯。

最後用http.ListenAndServe(addr string, handler Handler)監聽指定的port並啟動伺服器。


例如下面範例在main()函式定義處理的URL pattern請求為/hello,並在處理請求的handler函式中取得url請求參數(query string) key為name的值,然後與"hello"字串組成內容寫出,然後設定伺服器的port號為8080並啟動。

main.go

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Request) {
        name := r.URL.Query().Get("name") // get URL query string
        content := fmt.Sprintf("hello, %s", name)
        fmt.Fprint(w, content) // write out content
    })

    http.ListenAndServe(":8080", nil)
}

github

在命令列輸入go run main.go執行Go程式啟動伺服器。

$ go run main.go

在瀏覽器網址列輸入http://localhost:8080/hello?name=john得到的回應結果如下。

hello, john

或在命令列以curl發出curl -X GET "http://localhost:8080/hello?name=john"的回應如下。

$ curl -X GET "http://localhost:8080/hello?name=john"
hello, john

不過http對經常需要的路由處理、JSON處理參數驗證中間件處理等功能比較陽春,所以在寫網頁伺服器時通常會用Gin框架


沒有留言:

張貼留言