Skip to content

Commit 42e960b

Browse files
committed
Merge pull request astaxie#151 from polaris1119/master
第三章简单的一些语句,我就直接改了
2 parents b641c23 + 7385a5f commit 42e960b

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

03.2.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,11 @@
5252

5353
我们看到上面的代码,要编写一个web服务器很简单,只要调用http包的两个函数就可以了。
5454

55-
>如果你以前是PHP程序员,那你也许就会问,我们的nginx、apache服务器不需要吗?Go就是不需要这些,因为他直接就监听tcp端口了,做了nginx做的事情,然后sayhelloName这个其实就是我们写的逻辑函数了,也就是php里面的控制层(controller)函数类似。
55+
>如果你以前是PHP程序员,那你也许就会问,我们的nginx、apache服务器不需要吗?Go就是不需要这些,因为他直接就监听tcp端口了,做了nginx做的事情,然后sayhelloName这个其实就是我们写的逻辑函数了,跟php里面的控制层(controller)函数类似。
5656
5757
>如果你以前是python程序员,那么你一定听说过tornado,这个代码和他是不是很像,对,没错,go就是拥有类似python这样动态语言的特性,写web应用很方便。
5858
59-
>如果你以前是ruby程序员,那么和ROR的/script/server启动有点类似。
59+
>如果你以前是ruby程序员,会发现和ROR的/script/server启动有点类似。
6060
6161
我们看到Go通过简单的几行代码就已经运行起来一个web服务了,而且这个Web服务内部有支持高并发的特性,我将会在接下来的两个小节里面详细的讲解一下go是如何实现Web高并发的。
6262

03.4.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# 3.4 Go的http包详解
2-
前面小节介绍了Go怎么样实现了Web工作模式的一个流程,这一小节,我们将来详细的解剖一下http包,看它到底怎么样实现整个的过程的
2+
前面小节介绍了Go怎么样实现了Web工作模式的一个流程,这一小节,我们将详细地解剖一下http包,看它到底是怎样实现整个过程的
33

44
Go的http有两个核心功能:Conn、ServeMux
55

@@ -14,7 +14,7 @@ Go在等待客户端请求里面是这样写的:
1414
}
1515
go c.serve()
1616

17-
这里我们可以看到客户端的每次请求都会创建一个Conn,这个Conn里面保存了该次请求的信息,然后再传递到handler的时候可以读取到相应的header信息,这样保证了每个请求的独立性。
17+
这里我们可以看到客户端的每次请求都会创建一个Conn,这个Conn里面保存了该次请求的信息,然后再传递到对应的handler,该handler中便可以读取到相应的header信息,这样保证了每个请求的独立性。
1818

1919
## ServeMux的自定义
2020
我们前面小节讲述conn.server的时候,其实内部是调用了http包默认的路由器,通过路由器把本次请求的信息传递到了后端的处理函数。那么这个路由器是怎么实现的呢?
@@ -33,13 +33,13 @@ Go在等待客户端请求里面是这样写的:
3333
h Handler // 这个路由表达式对应哪个handler
3434
}
3535

36-
下面看一下handler的定义
36+
接着看一下Handler的定义
3737

3838
type Handler interface {
3939
ServeHTTP(ResponseWriter, *Request) // 路由实现器
4040
}
4141

42-
handler是一个接口,但是前一小节中的`sayhelloName`函数并没有实现ServeHTTP这个接口,为什么能添加呢?原来在http包里面还定义了一个类型`HandlerFunc`,我们定义的函数`sayhelloName`就是这个HandlerFunc调用之后的结果,这个类型默认就实现了ServeHTTP这个接口,即我们调用了HandlerFunc(f),类似强制类型转换f成为handlerFunc类型,这样f就拥有了ServHTTP方法。
42+
Handler是一个接口,但是前一小节中的`sayhelloName`函数并没有实现ServeHTTP这个接口,为什么能添加呢?原来在http包里面还定义了一个类型`HandlerFunc`,我们定义的函数`sayhelloName`就是这个HandlerFunc调用之后的结果,这个类型默认就实现了ServeHTTP这个接口,即我们调用了HandlerFunc(f),类似强制类型转换f成为HandlerFunc类型,这样f就拥有了ServHTTP方法。
4343

4444
type HandlerFunc func(ResponseWriter, *Request)
4545

03.5.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# 3.5 小结
2-
这一章我们介绍了HTTP协议, DNS解析的过程, 如何用go实现一个简陋的web server。并深入到net/http包的源码中为大家揭开如何实现此server的秘密
2+
这一章我们介绍了HTTP协议, DNS解析的过程, 如何用go实现一个简陋的web server。并深入到net/http包的源码中为大家揭开实现此server的秘密
33

4-
我希望通过这一章的学习,你能够对Go开发Web有了初步的了解,我们也看到相应的代码了,Go开发Web应用是很方便的,同时又是相当的灵活。
4+
希望通过这一章的学习,你能够对Go开发Web有了初步的了解,我们也看到相应的代码了,Go开发Web应用是很方便的,同时又是相当的灵活。
55

66
## links
77
* [目录](<preface.md>)

0 commit comments

Comments
 (0)