go 网络库 net/http 的请求处理过程
1. net/http 库结构
我们先来看一个最简单的 http server:
|
|
显然启动一个 http server,我们需要:
我们先来看一个最简单的 http server:
|
|
显然启动一个 http server,我们需要:
在 go 网络库 net/http 的请求处理过程 中我们了解了标准库 net/http 的请求处理流程。net/http 中提供了一个默认的路由实现 ServeMux,通过一个 map 能实现 url 到 handler 的映射,功能较为简单。第三方库 httprouter 已经成为事实上 router 的实现标准。大多数 web 框架的路由实现都是基于 httprouter,所以今天我们就来看看 httprouter 的实现。
标准库提供的binary包直接读写抽象数据类型实例。binary 只支持采用定长表示的抽象数据类型。
gob包也是Go标准库提供的一个序列化/反序列化方案,和JSON、XML等序列化/反序列化方案不同,它的API直接支持读写实现了io.Reader和io.Writer接口的实例。
strings 和 bytes 提供了 go 语言中的字符操作,因为还不不支持泛型,所以这两个包提供了几乎一样的函数和类型,区别仅仅在于一个操作 string,其中大致可分为如下几类:
获取当前时间可以使用 time.Now(),Now 返回的是 Time 结构的结构,Time 是对即时时间的抽象。time.Time的结构如下: