learnku.com - goblog学习一
第一天学到第三章。
服务启动
go的Web Server在main.go的main()中,只要二个语句,加一个函数,但需要导入net/http包:
http.HandleFunc("/", server)
http.ListenAndServe(localhost:3000,nil)
http.ListenAndServe函数启动一个监听端口,成功则返回空;http.HandleFunc函数把请求,递交给server处理。所以HandleFunc只是个提供服务函数
的适配器,它的定义是函数的类型:
type HandlerFunc func(ResponseWriter, *Request)
服务解析函数
func server(w http.ResponseWriter, r *http.Request) {...}
在这个函数里,需要对请求进行解析处理,包括:
- 标头设置:
w.Header().Set("Content-Type",text/html; charset=utf=8)
。这样浏览器能正确的解析服务器返回的内容编码格式,教程用邮件地址的做例子。 - 对404状态码设置:
w.WriteHeader(http.StatusNotFound)
。在请求找不到时,可以返回404状态码。不然找不到的网页状态码还是200。 - 对请求的URL:
r.URL.Path
解析,判断做相应分支处理。方法是用fmt.Fprint(),把内容
写入w
这个变量。
w 和 r
w是http.ResponseWriterd的实例,已经实现了io.Writer接口类型,而r是一个请求的指针。
本作品采用《CC 协议》,转载必须注明作者和本文链接