fixed markdown format

This commit is contained in:
yetist
2012-10-28 21:00:50 +08:00
parent c3abc9b6c7
commit 81a61b9ced
59 changed files with 280 additions and 280 deletions

8
3.4.md
View File

@@ -1,9 +1,9 @@
#3.4 Go的http包详解
# 3.4 Go的http包详解
前面小节介绍了Go怎么样实现了Web工作模式的一个流程这一小节我们将来详细的解剖一下http包看它到底怎么样实现整个的过程的。
Go的http有两个核心功能Conn、ServeMux
##Conn的goroutine
## Conn的goroutine
与我们一般编写的http服务器不同, Go为了实现高并发和高性能, 使用了goroutines来处理Conn的读写事件, 这样每个请求都能保持独立相互不会阻塞可以高效的响应网络事件。这是Go高效的保证。
Go在等待客户端请求里面是这样写的
@@ -16,7 +16,7 @@ Go在等待客户端请求里面是这样写的
这里我们可以看到客户端的每次请求都会创建一个Conn这个Conn里面保存了该次请求的信息然后再传递到handler的时候可以读取到相应的header信息这样保证了每个请求的独立性。
##ServeMux的自定义
## ServeMux的自定义
我们前面小节讲述conn.server的时候其实内部是调用了http包默认的路由器通过路由器把本次请求的信息传递到了后端的处理函数。那么这个路由器是怎么实现的呢
它的结构如下:
@@ -103,7 +103,7 @@ handler是一个接口但是前一小节中的`sayhelloName`函数并没有
http.ListenAndServe(":9090", mux)
}
##Go代码的执行流程
## Go代码的执行流程
通过对http包的分析之后现在让我们来梳理一下整个的代码执行过程。