36.1 Net和HTTP包介绍

Go中,搭建一个http server简单到令人难以置信。只需要引入net/http包,写几行代码,一个HTTP服务器就可以正常运行并接受访问请求。

下面就是Go最简单的HTTP服务器:

package main
import (
	"fmt"
	"net/http"
)
func myfunc(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintf(w, "hi")
}
func main() {
	http.HandleFunc("/", myfunc)
	http.ListenAndServe(":8080", nil)
}

编译运行程序,然后打开浏览器访问 http://localhost:8080/ , 我们可以看到网页输出"hi" ! 就这么简单,我们实现了一个HTTPserver!

下面我们通过分析net/http的源代码,来深入理解这个包的实现原理。在net/http源代码中,我们可以深深体会到Go语言的结构体(以及自定义类型)、接口、方法简单组合的设计哲学。这个包最主要的文件有4个,分别是: client.go server.go request.go response.go

这四个文件也分别代表了http中最重要的4个部分,HTTP Request 请求、 HTTP Response 响应、HTTP Client客户端和HTTP Server 服务端,所以我们先从这四个方面来了解net/http包。

下一节:HTTP Request请求是由客户端发出的消息, 用来使服务器执行动作.发出的消息包括起始行, Headers, Body。