您的位置 首页 golang

初探 Go http 服务器源码

初探 Go http 服务器源码

注册路由

注册路由 源码在 golang\src\net\http\server.go 文件

ServeMux 是一个 HTTP 请求多路复用的服务器,它将每个请求 URL 已注册路由列表 进行匹配,并调用 匹配路由 对应的处理程序

这里需要说明的是 handler func(ResponseWriter, *Request) 是把一个 函数 作为 参数 传递给 HandleFunc 方法,实现 函数的回调(闭包)

结合上面 服务端代码分析就是:

开启服务器

Serve 接受 Listener l 传入 连接 ,为每一个连接创建一个新 goroutine。 服务 goroutine 读取请求并然后调用 srv.Handler 来处理响应他们。

处理连接

有了上面两步 注入路由 和 开启服务 等待请求 后。 事情就简单了,就是拿着请求去匹配路由,调用路由对应方法。 这里由 ServeHTTP 将请求分发, url 匹配路由 后分派给 对应处理程序

References

[1] 更多往期文章在我的个人博客:

文章来源:智云一二三科技

文章标题:初探 Go http 服务器源码

文章地址:https://www.zhihuclub.com/97085.shtml

关于作者: 智云科技

热门文章

网站地图