为了账号安全,请及时绑定邮箱和手机立即绑定

初探 Go http 服务器源码

标签:
Go 源码

如果❤️我的文章有帮助,欢迎点赞、关注。这是对我继续技术创作最大的鼓励。更多往期文章在我的个人博客[1]

初探 Go http 服务器源码

注册路由

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

https://img1.sycdn.imooc.com//60b6f12e0001c97e16450990.jpg

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

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

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

https://img1.sycdn.imooc.com//60b6f12f0001a83a16451422.jpg

开启服务器

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

https://img1.sycdn.imooc.com//60b6f1300001bd5116451182.jpg

处理连接

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

https://img1.sycdn.imooc.com//60b6f1310001e90a16451662.jpg

References

[1] 更多往期文章在我的个人博客: https://coderdao.github.io/


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消