约定
- 基础域名
base.com
域名配置相关
官网(配置www)
[www].基础域名
后台接口
[用途].[项目简称].api.[基础域名]
用途:
- 开发 `dev` `dev.app.api.base.com`
- 测试 `test` `test.app.api.base.com`
- 生产 为空 `app.api.base.com`
实例:
base.com
[www].基础域名
[用途].[项目简称].api.[基础域名]
用途:
- 开发 `dev` `dev.app.api.base.com`
- 测试 `test` `test.app.api.base.com`
- 生产 为空 `app.api.base.com`
实例:
在访问filed
时,pointer to struct
会自动解引用
1 | type person struct { |
在调用method
时,struct
(reciver
)会自动转换(取地址,解引用)
1 | type Dog struct { |
function
参数不会转换
在go中,变量定义时,存储到stack还是heap上,由编译器确定
1 | func f() *string { |
Request
客户端发起的http请求,包含请求的URL(资源标识),方法,内容,cooike等
Response
服务端发送的响应(HTTP头,辅助说明响应内容)
Conn
客户端跟服务器的连接
Handler
URL的处理逻辑
1 | type Handler interface { |
创建Listen Socket, 监听指定的端口, 等待客户端请求到来
Listen Socket接受客户端的请求, 得到Client Socket, 接下来通过Client Socket与客户端通信
处理客户端的请求, 首先从Client Socket读取HTTP请求的协议头, 如果是POST方法, 还可能要读取客户端提交的数据, 然后交给相应的handler处理请求, handler处理完毕准备好客户端需要的数据, 通过Client Socket写给客户端
通过http.HandleFunc(pattern string, handler func(ResponseWriter, *Request))
处理指定请求(根据URL路由)
通过htpp.ListenAndServe(addr string, handler Handler)
注册处理器
Handler
实现了http.ServeHTTP(ResponseWriter, *Request)
接口
该接口根据URL,请求参数等来路由,比如jsonrpc中根据method
来路由
通过http.Handle(pattern string, handler Handler)
注册处理器
limit [M,]N
M
:偏移量,第M+1条
N
:数量
获取指定数目列
select * from t_stock_base limit 1;
获取排序结果中的指定序号,指定书目列
select * from t_stock_base order by stockid limit 1,2;
关联查询时,使用INNER JOIN <table> USING (<column>)
select
结果列,去除了关联列,避免了使用a.column