Go 的 net/http
包是用于处理 HTTP 请求和响应的主要工具。它提供了一系列的函数和类型,可以帮助你构建强大的 Web 服务器。
http.ListenAndServe
http.ListenAndServe
是一个方便的函数,它创建一个 HTTP 服务器并开始监听指定的端口。这个函数接收两个参数:监听的端口和处理请求的 Handler
。如果 Handler
为 nil
,则使用默认的 DefaultServeMux
。
例如:
http.ListenAndServe(":8080", nil)
http.HandleFunc 和 http.HandlerFunc
http.HandleFunc
是一个方便的函数,它将一个函数注册到默认的 ServeMux
,使得这个函数可以处理指定 URL 路径的请求。这个函数的第一个参数是 URL 路径,第二个参数是处理请求的函数。处理请求的函数应该接收 http.ResponseWriter
和 *http.Request
类型的参数。
例如:
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello, World!")
})
http.HandlerFunc
是一个类型,它包装了处理请求的函数,使其符合 http.Handler
接口。
例如:
handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello, World!")
})
http.Request
http.Request
是一个类型,它代表了一个 HTTP 请求。你可以从 *http.Request
对象中获取到请求行、请求头和请求体的信息。
例如:
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Println("Method:", r.Method)
fmt.Println("URL:", r.URL)
fmt.Println("Header:", r.Header)
body, _ := ioutil.ReadAll(r.Body)
fmt.Println("Body:", string(body))
}
http.ResponseWriter
http.ResponseWriter
是一个接口,它提供了写入 HTTP 响应的方法。你可以使用 http.ResponseWriter
写入状态码、响应头和响应体。
例如:
func handler(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(200)
w.Header().Set("Content-Type", "text/plain")
w.Write([]byte("Hello, World!"))
}
这就是 Go 的 net/http
包的基本使用。了解这些基本的函数和类型,你就可以开始构建你的第一个 Web 服务器了。
推荐阅读:
https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA
https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。