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) {...}

在这个函数里,需要对请求进行解析处理,包括:

  1. 标头设置:w.Header().Set("Content-Type",text/html; charset=utf=8)。这样浏览器能正确的解析服务器返回的内容编码格式,教程用邮件地址的做例子。
  2. 对404状态码设置:w.WriteHeader(http.StatusNotFound)。在请求找不到时,可以返回404状态码。不然找不到的网页状态码还是200。
  3. 对请求的URL: r.URL.Path 解析,判断做相应分支处理。方法是用fmt.Fprint(),把内容写入w这个变量。

w 和 r

w是http.ResponseWriterd的实例,已经实现了io.Writer接口类型,而r是一个请求的指针。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!