fixed again

This commit is contained in:
Oling Cat
2012-11-01 17:03:16 +08:00
parent e18ff5efc3
commit 9367e28f5f
2 changed files with 23 additions and 23 deletions

34
3.4.md
View File

@@ -111,45 +111,45 @@ handler是一个接口但是前一小节中的`sayhelloName`函数并没有
按顺序做了几件事:
1. 调用了DefaultServerMux的HandleFunc
1 调用了DefaultServerMux的HandleFunc
2. 调用了DefaultServerMux的Handle
2 调用了DefaultServerMux的Handle
3. 往DefaultServeMux的map[string]muxEntry中增加对应的handler和路由规则
3 往DefaultServeMux的map[string]muxEntry中增加对应的handler和路由规则
- 其次调用http.ListenAndServe(":9090", nil)
按顺序做了几件事情:
1. 实例化Server
1 实例化Server
2. 调用Server的ListenAndServe()
2 调用Server的ListenAndServe()
3. 调用net.Listen("tcp", addr)监听端口
3 调用net.Listen("tcp", addr)监听端口
4. 启动一个for循环在循环体中Accept请求
4 启动一个for循环在循环体中Accept请求
5. 对每个请求实例化一个Conn并且开启一个goroutine为这个请求进行服务go c.serve()
5 对每个请求实例化一个Conn并且开启一个goroutine为这个请求进行服务go c.serve()
6. 读取每个请求的内容w, err := c.readRequest()
6 读取每个请求的内容w, err := c.readRequest()
7. 判断handler是否为空如果没有设置handler这个例子就没有设置handlerhandler就设置为DefaultServeMux
7 判断handler是否为空如果没有设置handler这个例子就没有设置handlerhandler就设置为DefaultServeMux
8. 调用handler的ServeHttp
8 调用handler的ServeHttp
9. 在这个例子中下面就进入到DefaultServerMux.ServeHttp
9 在这个例子中下面就进入到DefaultServerMux.ServeHttp
10. 根据request选择handler并且进入到这个handler的ServeHTTP
10 根据request选择handler并且进入到这个handler的ServeHTTP
mux.handler(r).ServeHTTP(w, r)
11. 选择handler
11 选择handler
A. 判断是否有路由能满足这个request循环遍历ServerMux的muxEntry
A 判断是否有路由能满足这个request循环遍历ServerMux的muxEntry
B. 如果有路由满足调用这个路由handler的ServeHttp
B 如果有路由满足调用这个路由handler的ServeHttp
C. 如果没有路由满足调用NotFoundHandler的ServeHttp
C 如果没有路由满足调用NotFoundHandler的ServeHttp
## links
* [目录](<preface.md>)