本文来源于: https://gobea.cn/blog/detail/15zqpwrq.html
最简单的http服务
对于golang
来说,创建一个http服务是轻而易举的事情,如下,我们创建了一个非常简单的http服务,监听8899端口,只提供一个接口返回hello world
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "hello world")
})
http.ListenAndServe(":8899", nil)
}
当你在游览器输入http://127.0.0.1:8899
时,便能看到hello world
的输出
http服务
对于golang
的http服务,我们主要理解两个对象,:
Handler
,它是请求的处理对象,Handler
对象需要实现ServeHTTP
方法,ServeHTTP
执行的是我们的业务逻辑,一般我们定义的func(w http.ResponseWriter, r *http.Request)
的方法需要经过http.HandlerFunc
包装为Handler
对象ServeMux
,它相当于一个路由注册器,保存的请求路径pattern
和Handler
对象的map表,通过pattern
找到对应的Handler
对象,然后执行Handler
对象的ServeHTTP
方法
简单的说,http的执行对象是handler
,而要成为handler
对象.则必须实现ServeHTTP
方法,例如Handl