分享
深入理解gin framework(二)
Mandelbrot_Kobe · · 1699 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
gin flow 分析
- Handler是如何注册和传递的?路由是如何解析的?http方法又是如何处理,使其满足RESTful规范的?这些细节都需要深入到代码层面来分析
辅助功能
- 既然是框架,自然会处理各种项目中共性的问题,比如说404 Not Found。这部分框架的功能不是分析的重点。
启动http服务
- 在深入理解gin framework(一)的例子中,由r.Run(":14000")启动http服务。这里只能传入空值或者一个地址,否则会报错。源码如下,空值时默认端口为8080.
clipboard.png
- 启动http server的Run函数,TLS相似,只不过是加了个证书。其实还是把address传给官方标准包http的ListenAndServe函数,此处的engine struct只需要实现Handler接口,也就是实现ServeHTTP函数即可。
clipboard.png
clipboard.png
- engine struct中的pool就是sync.Pool,代码中可以看出来,每处理一个http请求,都会从连接池里边取出一个Context,把请求参数传递给这个Context,处理完之后,再把这个Context放回去。
处理http请求
- 从上边的源码可以看出来,所有的http请求都会走到handleHTTPRequest函数中去处理。
- (未完待续)
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1699 次点击
下一篇:Go语言的美好和丑陋
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
gin flow 分析
- Handler是如何注册和传递的?路由是如何解析的?http方法又是如何处理,使其满足RESTful规范的?这些细节都需要深入到代码层面来分析
辅助功能
- 既然是框架,自然会处理各种项目中共性的问题,比如说404 Not Found。这部分框架的功能不是分析的重点。
启动http服务
- 在深入理解gin framework(一)的例子中,由r.Run(":14000")启动http服务。这里只能传入空值或者一个地址,否则会报错。源码如下,空值时默认端口为8080.
clipboard.png
- 启动http server的Run函数,TLS相似,只不过是加了个证书。其实还是把address传给官方标准包http的ListenAndServe函数,此处的engine struct只需要实现Handler接口,也就是实现ServeHTTP函数即可。
clipboard.png
clipboard.png
- engine struct中的pool就是sync.Pool,代码中可以看出来,每处理一个http请求,都会从连接池里边取出一个Context,把请求参数传递给这个Context,处理完之后,再把这个Context放回去。
处理http请求
- 从上边的源码可以看出来,所有的http请求都会走到handleHTTPRequest函数中去处理。
- (未完待续)