- Handler 是如何注册和传递的?路由是如何解析的?http 方法又是如何处理,使其满足 RESTful 规范的?这些细节都需要深入到代码层面来分析
- 既然是框架,自然会处理各种项目中共性的问题,比如说 404 Not Found。这部分框架的功能不是分析的重点。
- 在深入理解 gin framework(一)的例子中,由 r.Run(“:14000”) 启动 http 服务。这里只能传入空值或者一个地址,否则会报错。源码如下,空值时默认端口为 8080.
- 启动 http server 的 Run 函数,TLS 相似,只不过是加了个证书。其实还是把 address 传给官方标准包 http 的 ListenAndServe 函数,此处的 engine struct 只需要实现 Handler 接口,也就是实现 ServeHTTP 函数即可。
- engine struct 中的 pool 就是 sync.Pool,代码中可以看出来,每处理一个 http 请求,都会从连接池里边取出一个 Context,把请求参数传递给这个 Context,处理完之后,再把这个 Context 放回去。
- 从上边的源码可以看出来,所有的 http 请求都会走到 handleHTTPRequest 函数中去处理。
- (未完待续)