File tree 5 files changed +8
-8
lines changed
5 files changed +8
-8
lines changed Original file line number Diff line number Diff line change @@ -50,7 +50,7 @@ URL(Uniform Resource Locator)是“统一资源定位符”的英文缩写,用
50
50
51
51
5 . 如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至 “根DNS服务器”,“根DNS服务器”收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。
52
52
53
- 6 . 如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发 ,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
53
+ 6 . 如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管本地DNS服务器用的是转发 ,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
54
54
55
55
![ ] ( images/3.1.dns_inquery.png?raw=true )
56
56
@@ -68,7 +68,7 @@ HTTP协议是Web工作的核心,所以要了解清楚Web的工作方式就需
68
68
69
69
HTTP是一种让Web服务器与浏览器(客户端)通过Internet发送与接收数据的协议,它建立在TCP协议之上,一般采用TCP的80端口。它是一个请求、响应协议--客户端发出一个请求,服务器响应这个请求。在HTTP中,客户端总是通过建立一个连接与发送一个HTTP请求来发起一个事务。服务器不能主动去与客户端联系,也不能给客户端发出一个回调连接。客户端与服务器端都可以提前中断一个连接。例如,当浏览器下载一个文件时,你可以通过点击“停止”键来中断文件的下载,关闭与服务器的HTTP连接。
70
70
71
- HTTP协议是无状态的,同一个客户端的这次请求和上次请求是没有对应关系 ,对HTTP服务器来说,它并不知道这两个请求是否来自同一个客户端。为了解决这个问题, Web程序引入了Cookie机制来维护连接的可持续状态。
71
+ HTTP协议是无状态的,同一个客户端的这次请求和上次请求是没有对应关系的 ,对HTTP服务器来说,它并不知道这两个请求是否来自同一个客户端。为了解决这个问题, Web程序引入了Cookie机制来维护连接的可持续状态。
72
72
73
73
> HTTP协议是建立在TCP协议之上的,因此TCP攻击一样会影响HTTP的通讯,例如比较常见的一些攻击:SYN Flood是当前最流行的DoS(拒绝服务攻击)与DdoS(分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,从而使得被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。
74
74
Original file line number Diff line number Diff line change 1
1
# 3.2 Go搭建一个Web服务器
2
2
3
- 前面小节已经介绍了Web是基于http协议的一个服务,Go语言里面提供了一个完善的net/http包,通过http包可以很方便的就搭建起来一个可以运行的Web服务 。同时使用这个包能很简单地对Web的路由,静态文件,模版,cookie等数据进行设置和操作。
3
+ 前面小节已经介绍了Web是基于http协议的一个服务,Go语言里面提供了一个完善的net/http包,通过http包可以很方便的搭建起来一个可以运行的Web服务 。同时使用这个包能很简单地对Web的路由,静态文件,模版,cookie等数据进行设置和操作。
4
4
5
5
## http包建立Web服务器
6
6
``` Go
Original file line number Diff line number Diff line change @@ -15,7 +15,7 @@ Handler:处理请求和生成返回信息的处理逻辑
15
15
16
16
## 分析http包运行机制
17
17
18
- 如下图所示,是Go实现Web服务的工作模式的流程图
18
+ 下图是Go实现Web服务的工作模式的流程图
19
19
20
20
![ ] ( images/3.3.http.png?raw=true )
21
21
@@ -80,7 +80,7 @@ func (srv *Server) Serve(l net.Listener) error {
80
80
81
81
图3.10 一个http连接处理流程
82
82
83
- 至此我们的三个问题已经全部得到了解答,你现在对于Go如何让Web跑起来的是否已经基本了解呢 ?
83
+ 至此我们的三个问题已经全部得到了解答,你现在对于Go如何让Web跑起来的是否已经基本了解了呢 ?
84
84
85
85
86
86
## links
Original file line number Diff line number Diff line change 2
2
3
3
表单是我们平常编写Web应用常用的工具,通过表单我们可以方便的让客户端和服务器进行数据的交互。对于以前开发过Web的用户来说表单都非常熟悉,但是对于C/C++程序员来说,这可能是一个有些陌生的东西,那么什么是表单呢?
4
4
5
- 表单是一个包含表单元素的区域。表单元素是允许用户在表单中 (比如:文本域、下拉列表、单选框、复选框等等)输入信息的元素 。表单使用表单标签(\< form\> )定义。
5
+ 表单是一个包含表单元素的区域。表单元素 (比如:文本域、下拉列表、单选框、复选框等等)是允许用户在表单中输入信息的元素 。表单使用表单标签(\< form\> )定义。
6
6
7
7
<form>
8
8
...
9
9
input 元素
10
10
...
11
11
</form>
12
12
13
- Go里面对于form处理已经有很方便的方法了,在Request里面的有专门的form处理 ,可以很方便的整合到Web开发里面来,4.1小节里面将讲解Go如何处理表单的输入。由于不能信任任何用户的输入,所以我们需要对这些输入进行有效性验证,4.2小节将就如何进行一些普通的验证进行详细的演示。
13
+ Go里面对于form处理已经有很方便的方法了,在Request里面有专门的form处理 ,可以很方便的整合到Web开发里面来,4.1小节里面将讲解Go如何处理表单的输入。由于不能信任任何用户的输入,所以我们需要对这些输入进行有效性验证,4.2小节将就如何进行一些普通的验证进行详细的演示。
14
14
15
15
HTTP协议是一种无状态的协议,那么如何才能辨别是否是同一个用户呢?同时又如何保证一个表单不出现多次递交的情况呢?4.3和4.4小节里面将对cookie(cookie是存储在客户端的信息,能够每次通过header和服务器进行交互的数据)等进行详细讲解。
16
16
Original file line number Diff line number Diff line change @@ -87,7 +87,7 @@ login函数中我们根据`r.Method`来判断是显示登录界面还是处理
87
87
88
88
![ ] ( images/4.1.slice.png?raw=true )
89
89
90
- 图4.2 服务器端打印接受到的信息
90
+ 图4.2 服务器端打印接收到的信息
91
91
92
92
` request.Form ` 是一个url.Values类型,里面存储的是对应的类似` key=value ` 的信息,下面展示了可以对form数据进行的一些操作:
93
93
``` Go
You can’t perform that action at this time.
0 commit comments