go http.ListenAndServe 简要处理流程

发布时间:2022-03-09编辑:lianpenglin阅读(1779)

    通过观察net/http标准库代码,可以看见整体处理流程大致可以分为7层

    第一层,标准库创建HTTP服务是通过创建一个Server数据结构并且通过调用Server的ListenAndServe方法完成;

    第二层,server数据结构会在一个for循环中不断监听每一个连接;

    第三层,每个连接默认开启一个goroutine为其服务;

    第四、五层,serverHandler结构代表请求对应的处理逻辑,并且通过这个结构进行具体业务逻辑处理;

    第六层,Server数据结构如果没有设置处理函数Handler,默认使用DefaultServerMux处理请求;

    第七层,DefaultServerMux是使用map结构来存储和查找路由规则。

    大家可以通过以上几点去阅读源码,加深印象,最好是做的能背诵下来的程度。

标签golang

如果对你有用打赏一下吧!