去实现的http代码 <代码>服务步骤非常简单,首先注册路由,然后创建服务并开启监听即可。下文我们将从注册路由,开启服务,处理请求这几个步骤了解Golang如何实现<代码> http 服务。
<代码> http。HandleFunc 和<代码> http。处理> func (w http。ResponseWriter r * http.Requests) 签名的函数,而后者是一个结构体,该结构体实现了<代码> func (w http。ResponseWriter r * http.Requests) 签名的方法。
<代码> http。HandleFunc 和<代码> http。处理>
func HandleFunc(模式字符串处理函数(ResponseWriter, *请求)){ DefaultServeMux。HandleFunc(模式,处理程序) }//HandleFunc注册处理程序函数给定的模式。 func (mux * ServeMux) HandleFunc(模式字符串处理函数(ResponseWriter, *请求)){ 如果处理程序==nil { 恐慌(“http:零处理程序”) } mux。处理(模式,HandlerFunc(处理器)) }函数处理(模式字符串处理程序处理程序){ DefaultServeMux。处理(模式,处理程序) }
可以看到这两个函数最终都由<代码> DefaultServeMux> 处理方法来完成路由的注册。
这里我们遇到两种类型的对象:<代码> ServeMux 和<代码>处理程序> 处理程序代码。
<代码>处理程序是一个接口:
类型的处理程序接口{ ServeHTTP (ResponseWriter *请求) }