From 3102249388eb7df80186cb3b342424ac675d1040 Mon Sep 17 00:00:00 2001 From: xiemengjun Date: Wed, 16 Jan 2013 00:54:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6=E5=90=8D?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E7=BB=84=E7=BB=87=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 0 -> 6148 bytes 1.md => 01.0.md | 12 ++-- 1.1.md => 01.1.md | 6 +- 1.2.md => 01.2.md | 4 +- 1.3.md => 01.3.md | 4 +- 1.4.md => 01.4.md | 4 +- 1.5.md => 01.5.md | 4 +- 2.md => 02.0.md | 20 +++---- 2.1.md => 02.1.md | 4 +- 2.2.md => 02.2.md | 4 +- 2.3.md => 02.3.md | 4 +- 2.4.md => 02.4.md | 4 +- 2.5.md => 02.5.md | 4 +- 2.6.md => 02.6.md | 4 +- 2.7.md => 02.7.md | 4 +- 2.8.md => 02.8.md | 4 +- 3.md => 03.0.md | 14 ++--- 3.1.md => 03.1.md | 4 +- 3.2.md => 03.2.md | 4 +- 3.3.md => 03.3.md | 4 +- 3.4.md => 03.4.md | 4 +- 3.5.md => 03.5.md | 4 +- 4.md => 04.0.md | 16 +++--- 4.1.md => 04.1.md | 4 +- 4.2.md => 04.2.md | 4 +- 4.3.md => 04.3.md | 4 +- 4.4.md => 04.4.md | 4 +- 4.5.md => 04.5.md | 4 +- 4.6.md => 04.6.md | 4 +- 5.md => 05.0.md | 18 +++--- 5.1.md => 05.1.md | 4 +- 5.2.md => 05.2.md | 4 +- 5.3.md => 05.3.md | 4 +- 5.4.md => 05.4.md | 4 +- 5.5.md => 05.5.md | 4 +- 5.6.md => 05.6.md | 4 +- 5.7.md => 05.7.md | 4 +- 6.md => 06.0.md | 14 ++--- 6.1.md => 06.1.md | 4 +- 6.2.md => 06.2.md | 4 +- 6.3.md => 06.3.md | 4 +- 6.4.md => 06.4.md | 4 +- 6.5.md => 06.5.md | 4 +- 7.md => 07.0.md | 18 +++--- 7.1.md => 07.1.md | 4 +- 7.2.md => 07.2.md | 4 +- 7.3.md => 07.3.md | 4 +- 7.4.md => 07.4.md | 4 +- 7.5.md => 07.5.md | 4 +- 7.6.md => 07.6.md | 4 +- 7.7.md => 07.7.md | 4 +- 8.md => 08.0.md | 14 ++--- 8.1.md => 08.1.md | 4 +- 8.2.md => 08.2.md | 4 +- 8.3.md => 08.3.md | 4 +- 8.4.md => 08.4.md | 4 +- 8.5.md => 08.5.md | 4 +- 9.md => 09.0.md | 18 +++--- 9.1.md => 09.1.md | 4 +- 9.2.md => 09.2.md | 4 +- 9.3.md => 09.3.md | 4 +- 9.4.md => 09.4.md | 4 +- 9.5.md => 09.5.md | 4 +- 9.6.md => 09.6.md | 4 +- 9.7.md => 09.7.md | 4 +- 10.md => 10.0.md | 0 10.1.md | 2 +- 10.2.md | 0 10.3.md | 0 10.4.md | 2 +- 11.md => 11.0.md | 0 11.1.md | 2 +- 11.2.md | 0 11.3.md | 0 11.4.md | 2 +- 12.md => 12.0.md | 0 12.1.md | 2 +- 12.2.md | 0 12.3.md | 0 12.4.md | 0 12.5.md | 2 +- 13.md => 13.0.md | 0 13.1.md | 2 +- 13.2.md | 0 13.3.md | 0 13.4.md | 0 13.5.md | 0 13.6.md | 2 +- 14.md => 14.0.md | 0 14.1.md | 2 +- 14.2.md | 0 14.3.md | 0 14.4.md | 0 14.5.md | 0 14.6.md | 0 14.7.md | 0 preface.md | 138 +++++++++++++++++++++++----------------------- 97 files changed, 261 insertions(+), 261 deletions(-) create mode 100644 .DS_Store rename 1.md => 01.0.md (87%) mode change 100644 => 100755 rename 1.1.md => 01.1.md (96%) mode change 100644 => 100755 rename 1.2.md => 01.2.md (98%) mode change 100644 => 100755 rename 1.3.md => 01.3.md (98%) mode change 100644 => 100755 rename 1.4.md => 01.4.md (96%) mode change 100644 => 100755 rename 1.5.md => 01.5.md (80%) mode change 100644 => 100755 rename 2.md => 02.0.md (73%) mode change 100644 => 100755 rename 2.1.md => 02.1.md (97%) mode change 100644 => 100755 rename 2.2.md => 02.2.md (97%) mode change 100644 => 100755 rename 2.3.md => 02.3.md (96%) mode change 100644 => 100755 rename 2.4.md => 02.4.md (98%) mode change 100644 => 100755 rename 2.5.md => 02.5.md (99%) mode change 100644 => 100755 rename 2.6.md => 02.6.md (99%) mode change 100644 => 100755 rename 2.7.md => 02.7.md (96%) mode change 100644 => 100755 rename 2.8.md => 02.8.md (94%) mode change 100644 => 100755 rename 3.md => 03.0.md (64%) mode change 100644 => 100755 rename 3.1.md => 03.1.md (99%) mode change 100644 => 100755 rename 3.2.md => 03.2.md (96%) mode change 100644 => 100755 rename 3.3.md => 03.3.md (96%) mode change 100644 => 100755 rename 3.4.md => 03.4.md (98%) mode change 100644 => 100755 rename 3.5.md => 03.5.md (83%) mode change 100644 => 100755 rename 4.md => 04.0.md (82%) mode change 100644 => 100755 rename 4.1.md => 04.1.md (98%) mode change 100644 => 100755 rename 4.2.md => 04.2.md (98%) mode change 100644 => 100755 rename 4.3.md => 04.3.md (96%) mode change 100644 => 100755 rename 4.4.md => 04.4.md (95%) mode change 100644 => 100755 rename 4.5.md => 04.5.md (98%) mode change 100644 => 100755 rename 4.6.md => 04.6.md (88%) mode change 100644 => 100755 rename 5.md => 05.0.md (72%) mode change 100644 => 100755 rename 5.1.md => 05.1.md (98%) mode change 100644 => 100755 rename 5.2.md => 05.2.md (94%) mode change 100644 => 100755 rename 5.3.md => 05.3.md (93%) mode change 100644 => 100755 rename 5.4.md => 05.4.md (93%) mode change 100644 => 100755 rename 5.5.md => 05.5.md (98%) mode change 100644 => 100755 rename 5.6.md => 05.6.md (97%) mode change 100644 => 100755 rename 5.7.md => 05.7.md (87%) mode change 100644 => 100755 rename 6.md => 06.0.md (84%) mode change 100644 => 100755 rename 6.1.md => 06.1.md (98%) mode change 100644 => 100755 rename 6.2.md => 06.2.md (99%) mode change 100644 => 100755 rename 6.3.md => 06.3.md (97%) mode change 100644 => 100755 rename 6.4.md => 06.4.md (98%) mode change 100644 => 100755 rename 6.5.md => 06.5.md (89%) mode change 100644 => 100755 rename 7.md => 07.0.md (82%) mode change 100644 => 100755 rename 7.1.md => 07.1.md (97%) mode change 100644 => 100755 rename 7.2.md => 07.2.md (99%) mode change 100644 => 100755 rename 7.3.md => 07.3.md (99%) mode change 100644 => 100755 rename 7.4.md => 07.4.md (96%) mode change 100644 => 100755 rename 7.5.md => 07.5.md (93%) mode change 100644 => 100755 rename 7.6.md => 07.6.md (94%) mode change 100644 => 100755 rename 7.7.md => 07.7.md (84%) mode change 100644 => 100755 rename 8.md => 08.0.md (89%) mode change 100644 => 100755 rename 8.1.md => 08.1.md (97%) mode change 100644 => 100755 rename 8.2.md => 08.2.md (98%) mode change 100644 => 100755 rename 8.3.md => 08.3.md (99%) mode change 100644 => 100755 rename 8.4.md => 08.4.md (99%) mode change 100644 => 100755 rename 8.5.md => 08.5.md (92%) mode change 100644 => 100755 rename 9.md => 09.0.md (86%) mode change 100644 => 100755 rename 9.1.md => 09.1.md (98%) mode change 100644 => 100755 rename 9.2.md => 09.2.md (98%) mode change 100644 => 100755 rename 9.3.md => 09.3.md (98%) mode change 100644 => 100755 rename 9.4.md => 09.4.md (98%) mode change 100644 => 100755 rename 9.5.md => 09.5.md (98%) mode change 100644 => 100755 rename 9.6.md => 09.6.md (97%) mode change 100644 => 100755 rename 9.7.md => 09.7.md (90%) mode change 100644 => 100755 rename 10.md => 10.0.md (100%) mode change 100644 => 100755 mode change 100644 => 100755 10.1.md mode change 100644 => 100755 10.2.md mode change 100644 => 100755 10.3.md mode change 100644 => 100755 10.4.md rename 11.md => 11.0.md (100%) mode change 100644 => 100755 mode change 100644 => 100755 11.1.md mode change 100644 => 100755 11.2.md mode change 100644 => 100755 11.3.md mode change 100644 => 100755 11.4.md rename 12.md => 12.0.md (100%) mode change 100644 => 100755 mode change 100644 => 100755 12.1.md mode change 100644 => 100755 12.2.md mode change 100644 => 100755 12.3.md mode change 100644 => 100755 12.4.md mode change 100644 => 100755 12.5.md rename 13.md => 13.0.md (100%) mode change 100644 => 100755 mode change 100644 => 100755 13.1.md mode change 100644 => 100755 13.2.md mode change 100644 => 100755 13.3.md mode change 100644 => 100755 13.4.md mode change 100644 => 100755 13.5.md mode change 100644 => 100755 13.6.md rename 14.md => 14.0.md (100%) mode change 100644 => 100755 mode change 100644 => 100755 14.1.md mode change 100644 => 100755 14.2.md mode change 100644 => 100755 14.3.md mode change 100644 => 100755 14.4.md mode change 100644 => 100755 14.5.md mode change 100644 => 100755 14.6.md mode change 100644 => 100755 14.7.md diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ad20fa83311e46bad5f6625a5ec8d60f381d602d GIT binary patch literal 6148 zcmeHKOHRWu5PeQc)s{_{EOUZN+#r+`sS>bg_Xv^#1r<`Y>OKeL033h=uw(~sY^yXM zwy3IRr15j?dHy^{nHYc>Zf2)IA3%pL7<5@QnDmR+EbuMTY3vv?4Dg72yvVa!v^MOc z0`72AZ198ycFr$d=t@F<9oc)m*k~9^EKvj=D!?V07vs3PMhPu z;LbAFmDsmRY!8h|O<3~0eCU&T$DxeCK6$ss9U-JLx@B4q5q))1VDsWH=m{u}PhTM|Rt+mZbu8ruo qbTNr59BwJB*i_6|NyR60Yiy6CLX15Y4%tG}9|0?a7OKF%D)0jY&~|J9 literal 0 HcmV?d00001 diff --git a/1.md b/01.0.md old mode 100644 new mode 100755 similarity index 87% rename from 1.md rename to 01.0.md index d13737f8..d9209054 --- a/1.md +++ b/01.0.md @@ -1,11 +1,11 @@ # 1 GO环境配置 ## 目录 - * 1. [Go安装](1.1.md) - * 2. [GOPATH与工作空间](1.2.md) - * 3. [Go命令](1.3.md) - * 4. [Go开发工具](1.4.md) - * 5. [小结](1.5.md) + * 1. [Go安装](01.1.md) + * 2. [GOPATH与工作空间](01.2.md) + * 3. [Go命令](01.3.md) + * 4. [Go开发工具](01.4.md) + * 5. [小结](01.5.md) 欢迎来到Go的世界,让我们开始吧! @@ -23,4 +23,4 @@ Go试图成为结合解释型编程的轻松、动态类型语言的高效以及 ## links * [目录]() - * 下一节: [Go安装](<1.1.md>) + * 下一节: [Go安装](<01.1.md>) diff --git a/1.1.md b/01.1.md old mode 100644 new mode 100755 similarity index 96% rename from 1.1.md rename to 01.1.md index 6495ae10..95f6676d --- a/1.1.md +++ b/01.1.md @@ -9,7 +9,7 @@ Go有多种安装方式,你可以选择自己喜欢的。这里我们介绍三 最后,如果你想在同一个系统中安装多个版本的Go,你可以参考第三方工具[GVM](https://github.com/moovweb/gvm),这是目前在这方面做得最好的工具,除非你知道怎么处理。 -### Go源码安装 +## Go源码安装 在Go的源代码中,有些部分是用Plan 9 C和AT&T汇编写的,因此假如你要想从源码安装,就必须安装C的编译工具。 在Mac系统中,只要你安装了Xcode,就已经包含了相应的编译工具。 @@ -132,8 +132,8 @@ homebrew是Mac系统下面目前使用最多的管理软件的工具,目前已 ## links * [目录]() - * 上一节: [Go环境配置](<1.md>) - * 下一节: [GOPATH 与工作空间](<1.2.md>) + * 上一节: [Go环境配置](<01.0.md>) + * 下一节: [GOPATH 与工作空间](<01.2.md>) [downlink]: http://code.google.com/p/go/downloads/list "Go安装包下载" [hg]: http://mercurial.selenic.com/downloads/ "Mercurial下载" diff --git a/1.2.md b/01.2.md old mode 100644 new mode 100755 similarity index 98% rename from 1.2.md rename to 01.2.md index 1800954b..d796473b --- a/1.2.md +++ b/01.2.md @@ -156,5 +156,5 @@ go get本质上可以理解为首先第一步是通过源码工具clone代码到 [1] Windows系统中环境变量的形式为`%GOPATH%`,本书主要使用Unix形式,Windows用户请自行替换。 ## links * [目录]() - * 上一节: [GO安装](<1.1.md>) - * 下一节: [GO 命令](<1.3.md>) + * 上一节: [GO安装](<01.1.md>) + * 下一节: [GO 命令](<01.3.md>) diff --git a/1.3.md b/01.3.md old mode 100644 new mode 100755 similarity index 98% rename from 1.3.md rename to 01.3.md index 088812df..a647f86c --- a/1.3.md +++ b/01.3.md @@ -104,5 +104,5 @@ ## links * [目录]() - * 上一节: [GOPATH与工作空间](<1.2.md>) - * 下一节: [Go开发工具](<1.4.md>) + * 上一节: [GOPATH与工作空间](<01.2.md>) + * 下一节: [Go开发工具](<01.4.md>) diff --git a/1.4.md b/01.4.md old mode 100644 new mode 100755 similarity index 96% rename from 1.4.md rename to 01.4.md index 5b30cb69..c1067b7e --- a/1.4.md +++ b/01.4.md @@ -299,5 +299,5 @@ gocode的github地址: ## links * [目录]() - * 上一节: [Go 命令](<1.3.md>) - * 下一节: [总结](<1.5.md>) + * 上一节: [Go 命令](<01.3.md>) + * 下一节: [总结](<01.5.md>) diff --git a/1.5.md b/01.5.md old mode 100644 new mode 100755 similarity index 80% rename from 1.5.md rename to 01.5.md index 229a86ae..2e9b9af1 --- a/1.5.md +++ b/01.5.md @@ -4,5 +4,5 @@ ## links * [目录]() - * 上一节: [Go开发工具](<1.4.md>) - * 下一章: [go语言基础](<2.md>) + * 上一节: [Go开发工具](<01.4.md>) + * 下一章: [go语言基础](<02.0.md>) diff --git a/2.md b/02.0.md old mode 100644 new mode 100755 similarity index 73% rename from 2.md rename to 02.0.md index 8ba57fd8..d4cf03b4 --- a/2.md +++ b/02.0.md @@ -1,14 +1,14 @@ # 2 Go语言基础 ## 目录 - * 1. [你好,Go](2.1.md) - * 2. [Go基础](2.2.md) - * 3. [流程和函数](2.3.md) - * 4. [struct类型](2.4.md) - * 5. [面向对象](2.5.md) - * 6. [interface](2.6.md) - * 7. [并发](2.7.md) - * 8. [小结](2.8.md) + * 1. [你好,Go](02.1.md) + * 2. [Go基础](02.2.md) + * 3. [流程和函数](02.3.md) + * 4. [struct类型](02.4.md) + * 5. [面向对象](02.5.md) + * 6. [interface](02.6.md) + * 7. [并发](02.7.md) + * 8. [小结](02.8.md) Go是一门类似C的编译型语言,但是它的编译速度非常快。这门语言的关键字总共也就二十五个,比英文字母还少一个,这对于我们的学习来说就简单了很多。先让我们看一眼这些关键字都长什么样: @@ -23,5 +23,5 @@ Go是一门类似C的编译型语言,但是它的编译速度非常快。这 ## links * [目录]() - * 上一章: [第一章总结](<1.5.md>) - * 下一节: [你好,Go](<2.1.md>) + * 上一章: [第一章总结](<01.5.md>) + * 下一节: [你好,Go](<02.1.md>) diff --git a/2.1.md b/02.1.md old mode 100644 new mode 100755 similarity index 97% rename from 2.1.md rename to 02.1.md index d68fc43b..c42f84e4 --- a/2.1.md +++ b/02.1.md @@ -48,5 +48,5 @@ Go使用`package`(和Python的模块类似)来组织代码。`main.main()` ## links * [目录]() - * 上一节: [Go语言基础](<2.md>) - * 下一节: [Go基础](<2.2.md>) + * 上一节: [Go语言基础](<02.0.md>) + * 下一节: [Go基础](<02.2.md>) diff --git a/2.2.md b/02.2.md old mode 100644 new mode 100755 similarity index 97% rename from 2.2.md rename to 02.2.md index 706f300b..8e7ed051 --- a/2.2.md +++ b/02.2.md @@ -445,5 +445,5 @@ slice有一些简便的操作 ## links * [目录]() - * 上一章: [你好,Go](<2.1.md>) - * 下一节: [流程和函数](<2.3.md>) + * 上一章: [你好,Go](<02.1.md>) + * 下一节: [流程和函数](<02.3.md>) diff --git a/2.3.md b/02.3.md old mode 100644 new mode 100755 similarity index 96% rename from 2.3.md rename to 02.3.md index def2fd0c..2c7d08ba --- a/2.3.md +++ b/02.3.md @@ -514,5 +514,5 @@ Go程序会自动调用`init()`和`main()`,所以你不需要在任何地方 ## links * [目录]() - * 上一章: [Go基础](<2.2.md>) - * 下一节: [struct类型](<2.4.md>) + * 上一章: [Go基础](<02.2.md>) + * 下一节: [struct类型](<02.4.md>) diff --git a/2.4.md b/02.4.md old mode 100644 new mode 100755 similarity index 98% rename from 2.4.md rename to 02.4.md index dce9ab1b..230df21e --- a/2.4.md +++ b/02.4.md @@ -203,5 +203,5 @@ Go里面很简单的解决了这个问题,最外层的优先访问,也就是 ## links * [目录]() - * 上一章: [流程和函数](<2.3.md>) - * 下一节: [面向对象](<2.5.md>) + * 上一章: [流程和函数](<02.3.md>) + * 下一节: [面向对象](<02.5.md>) diff --git a/2.5.md b/02.5.md old mode 100644 new mode 100755 similarity index 99% rename from 2.5.md rename to 02.5.md index 18865282..32f716d0 --- a/2.5.md +++ b/02.5.md @@ -317,5 +317,5 @@ method的语法如下: 通过这些内容,我们可以设计出基本的面向对象的程序了,但是Go里面的面向对象是如此的简单,没有任何的私有、公有关键字,通过大小写来实现(大写开头的为共有,小写开头的为私有),方法也同样适用这个原则。 ## links * [目录]() - * 上一章: [struct类型](<2.4.md>) - * 下一节: [interface](<2.6.md>) + * 上一章: [struct类型](<02.4.md>) + * 下一节: [interface](<02.6.md>) diff --git a/2.6.md b/02.6.md old mode 100644 new mode 100755 similarity index 99% rename from 2.6.md rename to 02.6.md index d0e5c157..12c8c6fc --- a/2.6.md +++ b/02.6.md @@ -391,5 +391,5 @@ Go语言实现了反射,所谓反射就是动态运行时的状态。我们一 ## links * [目录]() - * 上一章: [面向对象](<2.5.md>) - * 下一节: [并发](<2.7.md>) + * 上一章: [面向对象](<02.5.md>) + * 下一节: [并发](<02.7.md>) diff --git a/2.7.md b/02.7.md old mode 100644 new mode 100755 similarity index 96% rename from 2.7.md rename to 02.7.md index 4d89f8a5..d0346d8d --- a/2.7.md +++ b/02.7.md @@ -235,5 +235,5 @@ runtime包中有几个处理goroutine的函数: ## links * [目录]() - * 上一章: [interface](<2.6.md>) - * 下一节: [总结](<2.8.md>) + * 上一章: [interface](<02.6.md>) + * 下一节: [总结](<02.8.md>) diff --git a/2.8.md b/02.8.md old mode 100644 new mode 100755 similarity index 94% rename from 2.8.md rename to 02.8.md index 770b8b86..1d07bc39 --- a/2.8.md +++ b/02.8.md @@ -27,5 +27,5 @@ ## links * [目录]() - * 上一节: [并发](<2.7.md>) - * 下一章: [Web基础](<3.md>) + * 上一节: [并发](<02.7.md>) + * 下一章: [Web基础](<03.0.md>) diff --git a/3.md b/03.0.md old mode 100644 new mode 100755 similarity index 64% rename from 3.md rename to 03.0.md index 573e3c46..b2c1ba4b --- a/3.md +++ b/03.0.md @@ -1,15 +1,15 @@ # 3 Web基础 ## 目录 - * 1. [web工作方式](3.1.md) - * 2. [GO搭建一个简单的web服务](3.2.md) - * 3. [Go如何使得web工作](3.3.md) - * 4. [Go的http包详解](3.4.md) - * 5. [小结](3.5.md) + * 1. [web工作方式](03.1.md) + * 2. [GO搭建一个简单的web服务](03.2.md) + * 3. [Go如何使得web工作](03.3.md) + * 4. [Go的http包详解](03.4.md) + * 5. [小结](03.5.md) 学习基于Web的编程可能正是你读本书的原因。事实上,如何通过Go来编写Web应用也是我编写这本书的初衷。前面已经介绍过,Go目前已经拥有了成熟的Http处理包,这使得编写能做任何事情的动态Web程序易如反掌。在接下来的各章中将要介绍的内容,都是属于Web编程的范畴。本章则集中讨论一些与Web相关的概念和Go如何运行Web程序的话题。 ## links * [目录]() - * 上一章: [第二章总结](<2.8.md>) - * 下一节: [web工作方式](<3.1.md>) + * 上一章: [第二章总结](<02.8.md>) + * 下一节: [web工作方式](<03.1.md>) diff --git a/3.1.md b/03.1.md old mode 100644 new mode 100755 similarity index 99% rename from 3.1.md rename to 03.1.md index 767504c9..0074f9f8 --- a/3.1.md +++ b/03.1.md @@ -142,5 +142,5 @@ Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同 ## links * [目录]() - * 上一节: [Web基础](<3.md>) - * 下一节: [GO搭建一个web服务器](<3.2.md>) + * 上一节: [Web基础](<03.0.md>) + * 下一节: [GO搭建一个web服务器](<03.2.md>) diff --git a/3.2.md b/03.2.md old mode 100644 new mode 100755 similarity index 96% rename from 3.2.md rename to 03.2.md index dba69864..df1c6f3f --- a/3.2.md +++ b/03.2.md @@ -60,5 +60,5 @@ ## links * [目录]() - * 上一节: [Web工作方式](<3.1.md>) - * 下一节: [Go如何使得web工作](<3.3.md>) + * 上一节: [Web工作方式](<03.1.md>) + * 下一节: [Go如何使得web工作](<03.3.md>) diff --git a/3.3.md b/03.3.md old mode 100644 new mode 100755 similarity index 96% rename from 3.3.md rename to 03.3.md index ae1ad63f..09bccbea --- a/3.3.md +++ b/03.3.md @@ -46,5 +46,5 @@ Handler:处理请求和生成返回信息的处理逻辑 ## links * [目录]() - * 上一节: [GO搭建一个简单的web服务](<3.2.md>) - * 下一节: [Go的http包详解](<3.4.md>) + * 上一节: [GO搭建一个简单的web服务](<03.2.md>) + * 下一节: [Go的http包详解](<03.4.md>) diff --git a/3.4.md b/03.4.md old mode 100644 new mode 100755 similarity index 98% rename from 3.4.md rename to 03.4.md index bca74e83..aa2a8ffd --- a/3.4.md +++ b/03.4.md @@ -153,5 +153,5 @@ handler是一个接口,但是前一小节中的`sayhelloName`函数并没有 ## links * [目录]() - * 上一节: [Go如何使得web工作](<3.3.md>) - * 下一节: [小结](<3.5.md>) + * 上一节: [Go如何使得web工作](<03.3.md>) + * 下一节: [小结](<03.5.md>) diff --git a/3.5.md b/03.5.md old mode 100644 new mode 100755 similarity index 83% rename from 3.5.md rename to 03.5.md index b4488e3d..810cf4f5 --- a/3.5.md +++ b/03.5.md @@ -5,5 +5,5 @@ ## links * [目录]() - * 上一节: [Go的http包详解](<3.4.md>) - * 下一章: [表单](<4.md>) + * 上一节: [Go的http包详解](<03.4.md>) + * 下一章: [表单](<04.0.md>) diff --git a/4.md b/04.0.md old mode 100644 new mode 100755 similarity index 82% rename from 4.md rename to 04.0.md index 0a20efb0..754bcd68 --- a/4.md +++ b/04.0.md @@ -1,12 +1,12 @@ # 4 表单 ## 目录 - * 1. [处理表单的输入](4.1.md) - * 2. [验证表单的输入](4.2.md) - * 3. [预防跨站脚本](4.3.md) - * 4. [防止多次递交表单](4.4.md) - * 5. [处理文件上传](4.5.md) - * 6. [小结](4.6.md) + * 1. [处理表单的输入](04.1.md) + * 2. [验证表单的输入](04.2.md) + * 3. [预防跨站脚本](04.3.md) + * 4. [防止多次递交表单](04.4.md) + * 5. [处理文件上传](04.5.md) + * 6. [小结](04.6.md) 表单是我们平常编写Web应用常用的工具,通过表单我们可以方便的让客户端和服务器进行数据的交互。对于以前开发过Web的用户来说表单都非常熟悉,但是对于C/C++程序员来说,这可能是一个有些陌生的东西,那么什么是表单呢? @@ -27,5 +27,5 @@ HTTP协议是一种无状态的协议,那么如何才能辨别是否是同一 ## links * [目录]() - * 上一章: [第三章总结](<3.5.md>) - * 下一节: [处理表单的输入](<4.1.md>) + * 上一章: [第三章总结](<03.5.md>) + * 下一节: [处理表单的输入](<04.1.md>) diff --git a/4.1.md b/04.1.md old mode 100644 new mode 100755 similarity index 98% rename from 4.1.md rename to 04.1.md index 00035562..6b38f6b9 --- a/4.1.md +++ b/04.1.md @@ -99,5 +99,5 @@ Request本身也提供了FormValue()函数来获取用户提交的参数。如r. ## links * [目录]() - * 上一节: [表单](<4.md>) - * 下一节: [验证表单的输入](<4.2.md>) + * 上一节: [表单](<04.0.md>) + * 下一节: [验证表单的输入](<04.2.md>) diff --git a/4.2.md b/04.2.md old mode 100644 new mode 100755 similarity index 98% rename from 4.2.md rename to 04.2.md index fdd6455e..6a4cb533 --- a/4.2.md +++ b/04.2.md @@ -159,5 +159,5 @@ Go里面提供了一个time的处理包,我们可以把用户的输入年月 ## links * [目录]() - * 上一节: [处理表单的输入](<4.1.md>) - * 下一节: [预防跨站脚本](<4.3.md>) + * 上一节: [处理表单的输入](<04.1.md>) + * 下一节: [预防跨站脚本](<04.3.md>) diff --git a/4.3.md b/04.3.md old mode 100644 new mode 100755 similarity index 96% rename from 4.3.md rename to 04.3.md index 919f1b39..a39ee0ab --- a/4.3.md +++ b/04.3.md @@ -62,5 +62,5 @@ Go的html/template包默认帮你过滤了html标签,但是有时候你只想 ## links * [目录]() - * 上一节: [验证的输入](<4.2.md>) - * 下一节: [防止多次递交表单](<4.4.md>) + * 上一节: [验证的输入](<04.2.md>) + * 下一节: [防止多次递交表单](<04.4.md>) diff --git a/4.4.md b/04.4.md old mode 100644 new mode 100755 similarity index 95% rename from 4.4.md rename to 04.4.md index 99edb422..ce8c9495 --- a/4.4.md +++ b/04.4.md @@ -52,5 +52,5 @@ ## links * [目录]() - * 上一节: [预防跨站脚本](<4.3.md>) - * 下一节: [处理文件上传](<4.5.md>) + * 上一节: [预防跨站脚本](<04.3.md>) + * 下一节: [处理文件上传](<04.5.md>) diff --git a/4.5.md b/04.5.md old mode 100644 new mode 100755 similarity index 98% rename from 4.5.md rename to 04.5.md index e74c173e..6b655b77 --- a/4.5.md +++ b/04.5.md @@ -150,5 +150,5 @@ ## links * [目录]() - * 上一节: [防止多次递交表单](<4.4.md>) - * 下一节: [小结](<4.6.md>) + * 上一节: [防止多次递交表单](<04.4.md>) + * 下一节: [小结](<04.6.md>) diff --git a/4.6.md b/04.6.md old mode 100644 new mode 100755 similarity index 88% rename from 4.6.md rename to 04.6.md index bf9d5363..ee95aa0d --- a/4.6.md +++ b/04.6.md @@ -5,5 +5,5 @@ ## links * [目录]() - * 上一节: [处理文件上传](<4.5.md>) - * 下一章: [访问数据库](<5.md>) + * 上一节: [处理文件上传](<04.5.md>) + * 下一章: [访问数据库](<05.0.md>) diff --git a/5.md b/05.0.md old mode 100644 new mode 100755 similarity index 72% rename from 5.md rename to 05.0.md index d3f6ec85..3915e259 --- a/5.md +++ b/05.0.md @@ -6,15 +6,15 @@ Go没有内置的驱动支持任何的数据库,但是Go定义了database/sql 目前NOSQL已经成为Web开发的一个潮流,很多应用采用了NOSQL作为数据库,而不是以前的缓存,5.6小节将介绍MongoDB和Redis两种NOSQL数据库。 ## 目录 - * 1. [database/sql接口](5.1.md) - * 2. [使用MySQL数据库](5.2.md) - * 3. [使用SQLite数据库](5.3.md) - * 4. [使用PostgreSQL数据库](5.4.md) - * 5. [使用beedb库进行ORM开发](5.5.md) - * 6. [NOSQL数据库操作](5.6.md) - * 7. [小结](5.7.md) + * 1. [database/sql接口](05.1.md) + * 2. [使用MySQL数据库](05.2.md) + * 3. [使用SQLite数据库](05.3.md) + * 4. [使用PostgreSQL数据库](05.4.md) + * 5. [使用beedb库进行ORM开发](05.5.md) + * 6. [NOSQL数据库操作](05.6.md) + * 7. [小结](05.7.md) ## links * [目录]() - * 上一章: [第四章总结](<4.6.md>) - * 下一节: [database/sql接口](<5.1.md>) + * 上一章: [第四章总结](<04.6.md>) + * 下一节: [database/sql接口](<05.1.md>) diff --git a/5.1.md b/05.1.md old mode 100644 new mode 100755 similarity index 98% rename from 5.1.md rename to 05.1.md index 43cceb53..4a3f858a --- a/5.1.md +++ b/05.1.md @@ -200,5 +200,5 @@ database/sql在database/sql/driver提供的接口基础上定义了一些更高 ## links * [目录]() - * 上一节: [访问数据库](<5.md>) - * 下一节: [使用MySQL数据库](<5.2.md>) + * 上一节: [访问数据库](<05.0.md>) + * 下一节: [使用MySQL数据库](<05.2.md>) diff --git a/5.2.md b/05.2.md old mode 100644 new mode 100755 similarity index 94% rename from 5.2.md rename to 05.2.md index a0e3bfed..1551817e --- a/5.2.md +++ b/05.2.md @@ -133,5 +133,5 @@ stmt.Exec()函数用来执行stmt准备好的SQL语句 ## links * [目录]() - * 上一节: [database/sql接口](<5.1.md>) - * 下一节: [使用SQLite数据库](<5.3.md>) + * 上一节: [database/sql接口](<05.1.md>) + * 下一节: [使用SQLite数据库](<05.3.md>) diff --git a/5.3.md b/05.3.md old mode 100644 new mode 100755 similarity index 93% rename from 5.3.md rename to 05.3.md index c18e8455..834f82ae --- a/5.3.md +++ b/05.3.md @@ -114,5 +114,5 @@ Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接 ## links * [目录]() - * 上一节: [使用MySQL数据库](<5.2.md>) - * 下一节: [使用PostgreSQL数据库](<5.4.md>) + * 上一节: [使用MySQL数据库](<05.2.md>) + * 下一节: [使用PostgreSQL数据库](<05.4.md>) diff --git a/5.4.md b/05.4.md old mode 100644 new mode 100755 similarity index 93% rename from 5.4.md rename to 05.4.md index 0e48b539..98312c7b --- a/5.4.md +++ b/05.4.md @@ -120,5 +120,5 @@ package main ## links * [目录]() - * 上一节: [使用SQLite数据库](<5.3.md>) - * 下一节: [使用beedb库进行ORM开发](<5.5.md>) + * 上一节: [使用SQLite数据库](<05.3.md>) + * 下一节: [使用beedb库进行ORM开发](<05.5.md>) diff --git a/5.5.md b/05.5.md old mode 100644 new mode 100755 similarity index 98% rename from 5.5.md rename to 05.5.md index fff0cdc2..5b3323f0 --- a/5.5.md +++ b/05.5.md @@ -245,5 +245,5 @@ Having:用来指定having执行的时候的条件 ## links * [目录]() - * 上一节: [使用PostgreSQL数据库](<5.4.md>) - * 下一节: [NOSQL数据库操作](<5.6.md>) + * 上一节: [使用PostgreSQL数据库](<05.4.md>) + * 下一节: [NOSQL数据库操作](<05.6.md>) diff --git a/5.6.md b/05.6.md old mode 100644 new mode 100755 similarity index 97% rename from 5.6.md rename to 05.6.md index fcd1d4b9..dfd89967 --- a/5.6.md +++ b/05.6.md @@ -108,5 +108,5 @@ MongoDB是一个高性能,开源,无模式的文档型数据库,是一个 ## links * [目录]() - * 上一节: [使用beedb库进行ORM开发](<5.5.md>) - * 下一节: [小结](<5.7.md>) + * 上一节: [使用beedb库进行ORM开发](<05.5.md>) + * 下一节: [小结](<05.7.md>) diff --git a/5.7.md b/05.7.md old mode 100644 new mode 100755 similarity index 87% rename from 5.7.md rename to 05.7.md index 478ede90..4d1b6f19 --- a/5.7.md +++ b/05.7.md @@ -5,5 +5,5 @@ ## links * [目录]() - * 上一节: [NOSQL数据库操作](<5.6.md>) - * 下一章: [session和数据存储](<6.md>) + * 上一节: [NOSQL数据库操作](<05.6.md>) + * 下一章: [session和数据存储](<06.0.md>) diff --git a/6.md b/06.0.md old mode 100644 new mode 100755 similarity index 84% rename from 6.md rename to 06.0.md index b5dc262e..f59bade0 --- a/6.md +++ b/06.0.md @@ -4,13 +4,13 @@ Web开发中一个很重要的议题就是如何做好用户的整个浏览过 6.1小节里面讲介绍session机制和cookie机制的关系和区别,6.2讲解Go语言如何来实现session,里面讲实现一个简易的session管理器,6.3小节讲解如何防止session被劫持的情况,如何有效的保护session。我们知道session其实可以存储在任何地方,6.3小节里面实现的session是存储在内存中的,但是如果我们的应用进一步扩展了,要实现应用的session共享,那么我们可以把session存储在数据库中(memcache或者redis),6.4小节将详细的讲解如何实现这些功能。 ## 目录 - * 1. [session和cookie](6.1.md) - * 2. [Go如何使用session](6.2.md) - * 3. [session存储](6.3.md) - * 4. [预防session劫持](6.4.md) - * 5. [小结](6.5.md) + * 1. [session和cookie](06.1.md) + * 2. [Go如何使用session](06.2.md) + * 3. [session存储](06.3.md) + * 4. [预防session劫持](06.4.md) + * 5. [小结](06.5.md) ## links * [目录]() - * 上一章: [第五章总结](<5.7.md>) - * 下一节: [session和cookie](<6.1.md>) + * 上一章: [第五章总结](<05.7.md>) + * 下一节: [session和cookie](<06.1.md>) diff --git a/6.1.md b/06.1.md old mode 100644 new mode 100755 similarity index 98% rename from 6.1.md rename to 06.1.md index 7b04f056..534c3720 --- a/6.1.md +++ b/06.1.md @@ -95,5 +95,5 @@ session机制本身并不复杂,然而其实现和配置上的灵活性却使 ## links * [目录]() - * 上一节: [session和数据存储](<6.md>) - * 下一节: [Go如何使用session](<6.2.md>) + * 上一节: [session和数据存储](<06.0.md>) + * 下一节: [Go如何使用session](<06.2.md>) diff --git a/6.2.md b/06.2.md old mode 100644 new mode 100755 similarity index 99% rename from 6.2.md rename to 06.2.md index 43a74a27..b87ac748 --- a/6.2.md +++ b/06.2.md @@ -211,5 +211,5 @@ SessionStart函数返回的是一个满足Session接口的变量,那么我们 ## links * [目录]() - * 上一节: [session和cookie](<6.1.md>) - * 下一节: [session存储](<6.3.md>) + * 上一节: [session和cookie](<06.1.md>) + * 下一节: [session存储](<06.3.md>) diff --git a/6.3.md b/06.3.md old mode 100644 new mode 100755 similarity index 97% rename from 6.3.md rename to 06.3.md index 210b86aa..5ffa3d8d --- a/6.3.md +++ b/06.3.md @@ -133,5 +133,5 @@ ## links * [目录]() - * 上一节: [Go如何使用session](<6.2.md>) - * 下一节: [预防session劫持](<6.4.md>) + * 上一节: [Go如何使用session](<06.2.md>) + * 下一节: [预防session劫持](<06.4.md>) diff --git a/6.4.md b/06.4.md old mode 100644 new mode 100755 similarity index 98% rename from 6.4.md rename to 06.4.md index db19658b..8e95a83d --- a/6.4.md +++ b/06.4.md @@ -77,5 +77,5 @@ session启动后,我们设置了一个值,用于记录生成sessionID的时 ## links * [目录]() - * 上一节: [session存储](<6.3.md>) - * 下一节: [小结](<6.5.md>) + * 上一节: [session存储](<06.3.md>) + * 下一节: [小结](<06.5.md>) diff --git a/6.5.md b/06.5.md old mode 100644 new mode 100755 similarity index 89% rename from 6.5.md rename to 06.5.md index eb0ad2fd..b075e4f2 --- a/6.5.md +++ b/06.5.md @@ -2,5 +2,5 @@ 这章我们学习了什么是session,什么是cookie,以及他们两者之间的关系。但是目前Go官方标准包里面不支持session,所以我们设计了一个session管理器,实现了session从创建到销毁的整个过程。然后定义了Provider的接口,使得可以支持各种后端的session存储,然后我们在第三小节里面介绍了如何使用内存存储来实现session的管理。第四小节我们讲解了session劫持的过程,以及我们如何有效的来防止session劫持。通过这一章的讲解,希望能够让读者了解整个sesison的执行原理以及如何实现,而且是如何更加安全的使用session。 ## links * [目录]() - * 上一节: [session存储](<6.4.md>) - * 下一章: [文本处理](<7.md>) + * 上一节: [session存储](<06.4.md>) + * 下一章: [文本处理](<07.0.md>) diff --git a/7.md b/07.0.md old mode 100644 new mode 100755 similarity index 82% rename from 7.md rename to 07.0.md index e1652c45..a6156ddb --- a/7.md +++ b/07.0.md @@ -4,15 +4,15 @@ Web开发中对于文本处理是非常重要的一部分,我们往往需要 XML是目前很多标准接口的交互语言,很多时候和一些Java编写的webserver进行交互都是基于XML标准进行交互,7.1小节将介绍如何处理XML文本,我们使用XML之后发现它太复杂了,现在很多互联网企业对外的API大多数采用了JSON格式,这种格式描述简单,但是又能很好的表达意思,7.2小节我们将讲述如何来处理这样的JSON格式数据。正则是一个让人又爱又恨的工具,它处理文本的能力非常强大,我们在前面表单验证里面已经有所领略它的强大,7.3小节将详细的更深入的讲解如何利用好Go的正则。Web开发中一个很重要的部分就是MVC分离,在Go语言的Web开发中V有一个专门的包来支持`template`,7.4小节将详细的讲解如何使用模版来进行输出内容。7.5小节讲详细介绍如何进行文件和文件夹的操作。7.6小结介绍了字符串的相关操作。 ## 目录 - * 1. [XML处理](7.1.md) - * 2. [JSON处理](7.2.md) - * 3. [正则处理](7.3.md) - * 4. [模板处理](7.4.md) - * 5. [文件操作](7.5.md) - * 6. [字符串处理](7.6.md) - * 7. [小结](7.7.md) + * 1. [XML处理](07.1.md) + * 2. [JSON处理](07.2.md) + * 3. [正则处理](07.3.md) + * 4. [模板处理](07.4.md) + * 5. [文件操作](07.5.md) + * 6. [字符串处理](07.6.md) + * 7. [小结](07.7.md) ## links * [目录]() - * 上一章: [第六章总结](<6.5.md>) - * 下一节: [XML处理](<7.1.md>) + * 上一章: [第六章总结](<06.5.md>) + * 下一节: [XML处理](<07.1.md>) diff --git a/7.1.md b/07.1.md old mode 100644 new mode 100755 similarity index 97% rename from 7.1.md rename to 07.1.md index 4ccb6e0c..263dc792 --- a/7.1.md +++ b/07.1.md @@ -217,5 +217,5 @@ Go语言的反射机制,可以利用这些tag信息来将来自XML文件中的 ## links * [目录]() - * 上一节: [文本处理](<7.md>) - * 下一节: [Json处理](<7.2.md>) + * 上一节: [文本处理](<07.0.md>) + * 下一节: [Json处理](<07.2.md>) diff --git a/7.2.md b/07.2.md old mode 100644 new mode 100755 similarity index 99% rename from 7.2.md rename to 07.2.md index 7233041b..e9165d96 --- a/7.2.md +++ b/07.2.md @@ -218,5 +218,5 @@ Marshal函数只有在转换成功的时候才会返回数据,在转换的过 ## links * [目录]() - * 上一节: [XML处理](<7.1.md>) - * 下一节: [正则处理](<7.3.md>) + * 上一节: [XML处理](<07.1.md>) + * 下一节: [正则处理](<07.3.md>) diff --git a/7.3.md b/07.3.md old mode 100644 new mode 100755 similarity index 99% rename from 7.3.md rename to 07.3.md index 92c53262..6cd91285 --- a/7.3.md +++ b/07.3.md @@ -233,5 +233,5 @@ CompilePOSIX和Compile的不同点在于POSIX必须使用POSIX语法,它使用 ## links * [目录]() - * 上一节: [Json处理](<7.2.md>) - * 下一节: [模板处理](<7.4.md>) + * 上一节: [Json处理](<07.2.md>) + * 下一节: [模板处理](<07.4.md>) diff --git a/7.4.md b/07.4.md old mode 100644 new mode 100755 similarity index 96% rename from 7.4.md rename to 07.4.md index ba08329b..2110c77b --- a/7.4.md +++ b/07.4.md @@ -344,5 +344,5 @@ Unix用户已经很熟悉什么是`pipe`了,`ls | grep "beego"`类似这样的 ## links * [目录]() - * 上一节: [正则处理](<7.3.md>) - * 下一节: [文件操作](<7.5.md>) + * 上一节: [正则处理](<07.3.md>) + * 下一节: [文件操作](<07.5.md>) diff --git a/7.5.md b/07.5.md old mode 100644 new mode 100755 similarity index 93% rename from 7.5.md rename to 07.5.md index 146b86cd..c3618ff5 --- a/7.5.md +++ b/07.5.md @@ -149,5 +149,5 @@ Go语言里面删除文件和删除文件夹是同一个函数 ## links * [目录]() - * 上一节: [模板处理](<7.4.md>) - * 下一节: [字符串处理](<7.6.md>) \ No newline at end of file + * 上一节: [模板处理](<07.4.md>) + * 下一节: [字符串处理](<07.6.md>) \ No newline at end of file diff --git a/7.6.md b/07.6.md old mode 100644 new mode 100755 similarity index 94% rename from 7.6.md rename to 07.6.md index 7ce08270..273d86c9 --- a/7.6.md +++ b/07.6.md @@ -153,5 +153,5 @@ ## links * [目录]() - * 上一节: [文件操作](<7.5.md>) - * 下一节: [小结](<7.7.md>) \ No newline at end of file + * 上一节: [文件操作](<07.5.md>) + * 下一节: [小结](<07.7.md>) \ No newline at end of file diff --git a/7.7.md b/07.7.md old mode 100644 new mode 100755 similarity index 84% rename from 7.7.md rename to 07.7.md index 07412264..165e8471 --- a/7.7.md +++ b/07.7.md @@ -3,5 +3,5 @@ ## links * [目录]() - * 上一节: [字符串处理](<7.6.md>) - * 下一节: [Web服务](<8.md>) + * 上一节: [字符串处理](<07.6.md>) + * 下一节: [Web服务](<08.0.md>) diff --git a/8.md b/08.0.md old mode 100644 new mode 100755 similarity index 89% rename from 8.md rename to 08.0.md index 265152bd..a42337fb --- a/8.md +++ b/08.0.md @@ -12,13 +12,13 @@ SOAP是W3C在跨网络信息传递和远程计算机函数调用方面的一个 Go语言是21世纪的C语言,我们追求的是性能、简单,所以我们在8.1小节里面介绍如何使用Socket编程,很多游戏服务都是采用Socket来编写服务段,因为HTTP协议相对而言比较耗费性能,让我们看看Go语言如何来Socket编程。目前随着HTML5的发展,webSockets也逐渐的成为很多页游公司接下来开发的一些手段,我们将在8.2小节里面讲解Go语言如何编写webSockets的代码。 ## 目录 - * 1. [Socket编程](8.1.md) - * 2. [WebSocket](8.2.md) - * 3. [REST](8.3.md) - * 4. [RPC](8.4.md) - * 5. [小结](8.5.md) + * 1. [Socket编程](08.1.md) + * 2. [WebSocket](08.2.md) + * 3. [REST](08.3.md) + * 4. [RPC](08.4.md) + * 5. [小结](08.5.md) ## links * [目录]() - * 上一章: [第七章总结](<7.5.md>) - * 下一节: [Socket编程](<8.1.md>) + * 上一章: [第七章总结](<07.5.md>) + * 下一节: [Socket编程](<08.1.md>) diff --git a/8.1.md b/08.1.md old mode 100644 new mode 100755 similarity index 97% rename from 8.1.md rename to 08.1.md index 9c758d7e..c19918e1 --- a/8.1.md +++ b/08.1.md @@ -322,5 +322,5 @@ Go语言包中处理UDP Socket和TCP Socket不同的地方就是在服务器端 ## links * [目录]() - * 上一节: [Web服务](<8.md>) - * 下一节: [WebSocket](<8.2.md>) + * 上一节: [Web服务](<08.0.md>) + * 下一节: [WebSocket](<08.2.md>) diff --git a/8.2.md b/08.2.md old mode 100644 new mode 100755 similarity index 98% rename from 8.2.md rename to 08.2.md index 23e705f9..778356ff --- a/8.2.md +++ b/08.2.md @@ -141,5 +141,5 @@ WebSocket分为客户端和服务端,接下来我们将实现一个简单的 ## links * [目录]() - * 上一节: [Socket编程](<8.1.md>) - * 下一节: [REST](<8.3.md>) + * 上一节: [Socket编程](<08.1.md>) + * 下一节: [REST](<08.3.md>) diff --git a/8.3.md b/08.3.md old mode 100644 new mode 100755 similarity index 99% rename from 8.3.md rename to 08.3.md index 64630f6f..34d009dd --- a/8.3.md +++ b/08.3.md @@ -105,5 +105,5 @@ REST是一种架构风格,汲取了WWW的成功经验:无状态,以资源 ## links * [目录]() - * 上一节: [WebSocket](<8.2.md>) - * 下一节: [RPC](<8.4.md>) + * 上一节: [WebSocket](<08.2.md>) + * 下一节: [RPC](<08.4.md>) diff --git a/8.4.md b/08.4.md old mode 100644 new mode 100755 similarity index 99% rename from 8.4.md rename to 08.4.md index a7d044cd..608bb283 --- a/8.4.md +++ b/08.4.md @@ -386,5 +386,5 @@ Go已经提供了对RPC的良好支持,通过上面HTTP、TCP、JSON RPC的实 ## links * [目录]() - * 上一节: [REST](<8.3.md>) - * 下一节: [小结](<8.5.md>) + * 上一节: [REST](<08.3.md>) + * 下一节: [小结](<08.5.md>) diff --git a/8.5.md b/08.5.md old mode 100644 new mode 100755 similarity index 92% rename from 8.5.md rename to 08.5.md index 60712d66..bc7c1bc3 --- a/8.5.md +++ b/08.5.md @@ -2,5 +2,5 @@ 这一章我们介绍了目前流行的几种主要的网络应用开发方式,第一小节介绍了网络编程中的基础:Socket编程,因为现在网络正在朝云的方向快速进化,作为这一技术演进的基石的的socket知识,作为开发者的你,是必须要掌握的。第二小节介绍了正愈发流行的HTML5中一个重要的特性WebSocket,通过它,服务器可以实现主动的push消息,以简化以前ajax轮询的模式。第三小节介绍了REST编写模式,这种模式特别适合来开发网络应用API,目前移动应用的快速发展,我觉得将来会是一个潮流。第四小节介绍了Go实现的RPC相关知识,对于上面四种开发方式,Go都已经提供了良好的支持,net包及其子包,是所有涉及到网络编程的工具的所在地。如果你想更加深入的了解相关实现细节,可以尝试阅读这个包下面的源码。 ## links * [目录]() - * 上一节: [RPC](<8.4.md>) - * 下一章: [安全与加密](<9.md>) + * 上一节: [RPC](<08.4.md>) + * 下一章: [安全与加密](<09.0.md>) diff --git a/9.md b/09.0.md old mode 100644 new mode 100755 similarity index 86% rename from 9.md rename to 09.0.md index 6e8164b9..25fcdc9a --- a/9.md +++ b/09.0.md @@ -12,15 +12,15 @@ 加密的本质就是扰乱数据,某些不可恢复的数据扰乱我们称为单项加密或者散列算法。另外还有一种双向加密方式,也就是可以对加密后的数据进行解密。我们将会在9.6小节介绍如何实现这种双向加密方式。 ## 目录 - * 1 [预防CSRF攻击](9.1.md) - * 2 [确保输入过滤](9.2.md) - * 3 [避免XSS攻击](9.3.md) - * 4 [避免SQL注入](9.4.md) - * 5 [存储密码](9.5.md) - * 6 [加密和解密数据](9.6.md) - * 7 [小结](9.7.md) + * 1 [预防CSRF攻击](09.1.md) + * 2 [确保输入过滤](09.2.md) + * 3 [避免XSS攻击](09.3.md) + * 4 [避免SQL注入](09.4.md) + * 5 [存储密码](09.5.md) + * 6 [加密和解密数据](09.6.md) + * 7 [小结](09.7.md) ## links * [目录]() - * 上一章: [第八章总结](<8.5.md>) - * 下一节: [预防CSRF攻击](<9.1.md>) + * 上一章: [第八章总结](<08.5.md>) + * 下一节: [预防CSRF攻击](<09.1.md>) diff --git a/9.1.md b/09.1.md old mode 100644 new mode 100755 similarity index 98% rename from 9.1.md rename to 09.1.md index ddcec004..771d4029 --- a/9.1.md +++ b/09.1.md @@ -87,5 +87,5 @@ CSRF的防御可以从服务端和客户端两方面着手,防御效果是从 ## links * [目录]() - * 上一节: [安全与加密](<9.md>) - * 下一节: [确保输入过滤](<9.2.md>) + * 上一节: [安全与加密](<09.0.md>) + * 下一节: [确保输入过滤](<09.2.md>) diff --git a/9.2.md b/09.2.md old mode 100644 new mode 100755 similarity index 98% rename from 9.2.md rename to 09.2.md index 5a4b0ea0..e3b1d55a --- a/9.2.md +++ b/09.2.md @@ -68,5 +68,5 @@ ## links * [目录]() - * 上一节: [预防CSRF攻击](<9.1.md>) - * 下一节: [避免XSS攻击](<9.3.md>) + * 上一节: [预防CSRF攻击](<09.1.md>) + * 下一节: [避免XSS攻击](<09.3.md>) diff --git a/9.3.md b/09.3.md old mode 100644 new mode 100755 similarity index 98% rename from 9.3.md rename to 09.3.md index 7f6569cb..272c47df --- a/9.3.md +++ b/09.3.md @@ -48,5 +48,5 @@ XSS漏洞是相当有危害的,在开发Web应用的时候,一定要记住 ## links * [目录]() - * 上一节: [确保输入过滤](<9.2.md>) - * 下一节: [避免SQL注入](<9.4.md>) + * 上一节: [确保输入过滤](<09.2.md>) + * 下一节: [避免SQL注入](<09.4.md>) diff --git a/9.4.md b/09.4.md old mode 100644 new mode 100755 similarity index 98% rename from 9.4.md rename to 09.4.md index 983212ac..75c042da --- a/9.4.md +++ b/09.4.md @@ -65,5 +65,5 @@ SQL注入攻击的危害这么大,那么该如何来防治呢?下面这些建 ## links * [目录]() - * 上一节: [避免XSS攻击](<9.3.md>) - * 下一节: [存储密码](<9.5.md>) + * 上一节: [避免XSS攻击](<09.3.md>) + * 下一节: [存储密码](<09.5.md>) diff --git a/9.5.md b/09.5.md old mode 100644 new mode 100755 similarity index 98% rename from 9.5.md rename to 09.5.md index fd5d6021..fe8b19e3 --- a/9.5.md +++ b/09.5.md @@ -85,5 +85,5 @@ Go语言对这三种加密算法的实现如下所示: ## links * [目录]() - * 上一节: [确保输入过滤](<9.4.md>) - * 下一节: [加密和解密数据](<9.6.md>) + * 上一节: [确保输入过滤](<09.4.md>) + * 下一节: [加密和解密数据](<09.6.md>) diff --git a/9.6.md b/09.6.md old mode 100644 new mode 100755 similarity index 97% rename from 9.6.md rename to 09.6.md index 982896ed..cc78213a --- a/9.6.md +++ b/09.6.md @@ -118,5 +118,5 @@ Go语言的`crypto`里面支持对称加密的高级加解密包有: ## links * [目录]() - * 上一节: [存储密码](<9.5.md>) - * 下一节: [小结](<9.7.md>) + * 上一节: [存储密码](<09.5.md>) + * 下一节: [小结](<09.7.md>) diff --git a/9.7.md b/09.7.md old mode 100644 new mode 100755 similarity index 90% rename from 9.7.md rename to 09.7.md index eafec4c9..eb46e56a --- a/9.7.md +++ b/09.7.md @@ -5,5 +5,5 @@ ## links * [目录]() - * 上一节: [加密和解密数据](<9.6.md>) - * 下一节: [国际化和本地化](<10.md>) + * 上一节: [加密和解密数据](<09.6.md>) + * 下一节: [国际化和本地化](<10.0.md>) diff --git a/10.md b/10.0.md old mode 100644 new mode 100755 similarity index 100% rename from 10.md rename to 10.0.md diff --git a/10.1.md b/10.1.md old mode 100644 new mode 100755 index 0ade1322..922e9bb9 --- a/10.1.md +++ b/10.1.md @@ -81,5 +81,5 @@ GO语言默认采用"UTF-8"编码集,所以我们实现i18n时不考虑第三 ## links * [目录]() - * 上一节: [国际化和本地化](<10.md>) + * 上一节: [国际化和本地化](<10.0.md>) * 下一节: [本地化资源](<10.2.md>) diff --git a/10.2.md b/10.2.md old mode 100644 new mode 100755 diff --git a/10.3.md b/10.3.md old mode 100644 new mode 100755 diff --git a/10.4.md b/10.4.md old mode 100644 new mode 100755 index 2869ddc6..b58fa62b --- a/10.4.md +++ b/10.4.md @@ -3,4 +3,4 @@ ## links * [目录]() * 上一节: [国际化站点](<10.3.md>) - * 下一节: [错误处理,故障排除和测试](<11.md>) + * 下一节: [错误处理,故障排除和测试](<11.0.md>) diff --git a/11.md b/11.0.md old mode 100644 new mode 100755 similarity index 100% rename from 11.md rename to 11.0.md diff --git a/11.1.md b/11.1.md old mode 100644 new mode 100755 index de893e99..d712a036 --- a/11.1.md +++ b/11.1.md @@ -183,5 +183,5 @@ Go在错误处理上采用了与C类似的检查返回值的方式,而不是 ## links * [目录]() - * 上一节: [错误处理,调试和测试](<11.md>) + * 上一节: [错误处理,调试和测试](<11.0.md>) * 下一节: [使用GDB调试](<11.2.md>) diff --git a/11.2.md b/11.2.md old mode 100644 new mode 100755 diff --git a/11.3.md b/11.3.md old mode 100644 new mode 100755 diff --git a/11.4.md b/11.4.md old mode 100644 new mode 100755 index 4e4cca28..4a8a3e00 --- a/11.4.md +++ b/11.4.md @@ -4,4 +4,4 @@ ## links * [目录]() * 上一节: [Go怎么写测试用例](<11.3.md>) - * 下一节: [部署与维护](<12.md>) \ No newline at end of file + * 下一节: [部署与维护](<12.0.md>) \ No newline at end of file diff --git a/12.md b/12.0.md old mode 100644 new mode 100755 similarity index 100% rename from 12.md rename to 12.0.md diff --git a/12.1.md b/12.1.md old mode 100644 new mode 100755 index ffeea4b9..47f2a7bc --- a/12.1.md +++ b/12.1.md @@ -162,5 +162,5 @@ seelog支持自定义日志处理,下面是我基于它自定义的日志处 ## links * [目录]() - * 上一章: [部署与维护](<12.md>) + * 上一章: [部署与维护](<12.0.md>) * 下一节: [网站错误处理](<12.2.md>) \ No newline at end of file diff --git a/12.2.md b/12.2.md old mode 100644 new mode 100755 diff --git a/12.3.md b/12.3.md old mode 100644 new mode 100755 diff --git a/12.4.md b/12.4.md old mode 100644 new mode 100755 diff --git a/12.5.md b/12.5.md old mode 100644 new mode 100755 index 8bd84a26..023b6b5f --- a/12.5.md +++ b/12.5.md @@ -15,4 +15,4 @@ ## links * [目录]() * 上一章: [备份和恢复](<12.4.md>) - * 下一节: [构建博客系统](<13.md>) \ No newline at end of file + * 下一节: [构建博客系统](<13.0.md>) \ No newline at end of file diff --git a/13.md b/13.0.md old mode 100644 new mode 100755 similarity index 100% rename from 13.md rename to 13.0.md diff --git a/13.1.md b/13.1.md old mode 100644 new mode 100755 index 5c79cb71..1135cdfc --- a/13.1.md +++ b/13.1.md @@ -43,5 +43,5 @@ 本小节介绍了博客系统从设置GOPATH到目录建立这样的基础信息,也简单介绍了框架结构采用的MVC模式,博客系统中数据流的执行流程,最后通过这些流程设计了博客系统的目录结构,至此,我们基本完成一个框架的搭建,接下来的几个小节我们将会逐个实现。 ## links * [目录]() - * 上一章: [构建博客系统](<13.md>) + * 上一章: [构建博客系统](<13.0.md>) * 下一节: [自定义路由器设计](<13.2.md>) diff --git a/13.2.md b/13.2.md old mode 100644 new mode 100755 diff --git a/13.3.md b/13.3.md old mode 100644 new mode 100755 diff --git a/13.4.md b/13.4.md old mode 100644 new mode 100755 diff --git a/13.5.md b/13.5.md old mode 100644 new mode 100755 diff --git a/13.6.md b/13.6.md old mode 100644 new mode 100755 index b9041ce3..fb9264eb --- a/13.6.md +++ b/13.6.md @@ -4,4 +4,4 @@ ## links * [目录]() * 上一章: [实现博客的增删改](<13.5.md>) - * 下一节: [扩展博客管理系统](<14.md>) \ No newline at end of file + * 下一节: [扩展博客管理系统](<14.0.md>) \ No newline at end of file diff --git a/14.md b/14.0.md old mode 100644 new mode 100755 similarity index 100% rename from 14.md rename to 14.0.md diff --git a/14.1.md b/14.1.md old mode 100644 new mode 100755 index 6aba36ba..195f5709 --- a/14.1.md +++ b/14.1.md @@ -66,5 +66,5 @@ Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。Boot ## links * [目录]() - * 上一节: [扩展Web框架](<14.md>) + * 上一节: [扩展Web框架](<14.0.md>) * 下一节: [Session支持](<14.2.md>) \ No newline at end of file diff --git a/14.2.md b/14.2.md old mode 100644 new mode 100755 diff --git a/14.3.md b/14.3.md old mode 100644 new mode 100755 diff --git a/14.4.md b/14.4.md old mode 100644 new mode 100755 diff --git a/14.5.md b/14.5.md old mode 100644 new mode 100755 diff --git a/14.6.md b/14.6.md old mode 100644 new mode 100755 diff --git a/14.7.md b/14.7.md old mode 100644 new mode 100755 diff --git a/preface.md b/preface.md index b95ef286..c2cf4878 100644 --- a/preface.md +++ b/preface.md @@ -1,91 +1,91 @@ -* 1.[Go环境配置](1.md) - - 1.1. [Go安装](1.1.md) - - 1.2. [GOPATH 与工作空间](1.2.md) - - 1.3. [Go 命令](1.3.md) - - 1.4. [Go开发工具](1.4.md) - - 1.5. [小结](1.5.md) -* 2.[Go语言基础](2.md) - - 2.1. [你好,Go](2.1.md) - - 2.2. [Go基础](2.2.md) - - 2.3. [流程和函数](2.3.md) - - 2.4. [struct](2.4.md) - - 2.5. [面向对象](2.5.md) - - 2.6. [interface](2.6.md) - - 2.7. [并发](2.7.md) - - 2.8. [小结](2.8.md) -* 3.[Web基础](3.md) - - 3.1 [web工作方式](3.1.md) - - 3.2 [Go搭建一个简单的web服务](3.2.md) - - 3.3 [Go如何使得web工作](3.3.md) - - 3.4 [Go的http包详解](3.4.md) - - 3.5 [小结](3.5.md) -* 4.[表单](4.md) - - 4.1 [处理表单的输入](4.1.md) - - 4.2 [验证表单的输入](4.2.md) - - 4.3 [预防跨站脚本](4.3.md) - - 4.4 [防止多次递交表单](4.4.md) - - 4.5 [处理文件上传](4.5.md) - - 4.6 [小结](4.6.md) -* 5.[访问数据库](5.md) - - 5.1 [database/sql接口](5.1.md) - - 5.2 [使用MySQL数据库](5.2.md) - - 5.3 [使用SQLite数据库](5.3.md) - - 5.4 [使用PostgreSQL数据库](5.4.md) - - 5.5 [使用beedb库进行ORM开发](5.5.md) - - 5.6 [NOSQL数据库操作](5.6.md) - - 5.7 [小结](5.7.md) -* 6.[session和数据存储](6.md) - - 6.1 [session和cookie](6.1.md) - - 6.2 [Go如何使用session](6.2.md) - - 6.3 [session存储](6.3.md) - - 6.4 [预防session劫持](6.4.md) - - 6.5 [小结](6.5.md) -* 7.[文本文件处理](7.md) - - 7.1 [XML处理](7.1.md) - - 7.2 [JSON处理](7.2.md) - - 7.3 [正则处理](7.3.md) - - 7.4 [模板处理](7.4.md) - - 7.5 [文件操作](7.5.md) - - 7.6 [字符串处理](7.6.md) - - 7.7 [小结](7.7.md) -* 8.[Web服务](8.md) - - 8.1 [Socket编程](8.1.md) - - 8.2 [WebSocket](8.2.md) - - 8.3 [REST](8.3.md) - - 8.4 [RPC](8.4.md) - - 8.5 [小结](8.5.md) -* 9.[安全与加密](9.md) - - 9.1 [预防CSRF攻击](9.1.md) - - 9.2 [确保输入过滤](9.2.md) - - 9.3 [避免XSS攻击](9.3.md) - - 9.4 [避免SQL注入](9.4.md) - - 9.5 [存储密码](9.5.md) - - 9.6 [加密和解密数据](9.6.md) - - 9.7 [小结](9.7.md) -* 10.[国际化和本地化](10.md) +* 1.[Go环境配置](01.0.md) + - 1.1. [Go安装](01.1.md) + - 1.2. [GOPATH 与工作空间](01.2.md) + - 1.3. [Go 命令](01.3.md) + - 1.4. [Go开发工具](01.4.md) + - 1.5. [小结](01.5.md) +* 2.[Go语言基础](02.0.md) + - 2.1. [你好,Go](02.1.md) + - 2.2. [Go基础](02.2.md) + - 2.3. [流程和函数](02.3.md) + - 2.4. [struct](02.4.md) + - 2.5. [面向对象](02.5.md) + - 2.6. [interface](02.6.md) + - 2.7. [并发](02.7.md) + - 2.8. [小结](02.8.md) +* 3.[Web基础](03.0.md) + - 3.1 [web工作方式](03.1.md) + - 3.2 [Go搭建一个简单的web服务](03.2.md) + - 3.3 [Go如何使得web工作](03.3.md) + - 3.4 [Go的http包详解](03.4.md) + - 3.5 [小结](03.5.md) +* 4.[表单](04.0.md) + - 4.1 [处理表单的输入](04.1.md) + - 4.2 [验证表单的输入](04.2.md) + - 4.3 [预防跨站脚本](04.3.md) + - 4.4 [防止多次递交表单](04.4.md) + - 4.5 [处理文件上传](04.5.md) + - 4.6 [小结](04.6.md) +* 5.[访问数据库](05.0.md) + - 5.1 [database/sql接口](05.1.md) + - 5.2 [使用MySQL数据库](05.2.md) + - 5.3 [使用SQLite数据库](05.3.md) + - 5.4 [使用PostgreSQL数据库](05.4.md) + - 5.5 [使用beedb库进行ORM开发](05.5.md) + - 5.6 [NOSQL数据库操作](05.6.md) + - 5.7 [小结](05.7.md) +* 6.[session和数据存储](06.0.md) + - 6.1 [session和cookie](06.1.md) + - 6.2 [Go如何使用session](06.2.md) + - 6.3 [session存储](06.3.md) + - 6.4 [预防session劫持](06.4.md) + - 6.5 [小结](06.5.md) +* 7.[文本文件处理](07.0.md) + - 7.1 [XML处理](07.1.md) + - 7.2 [JSON处理](07.2.md) + - 7.3 [正则处理](07.3.md) + - 7.4 [模板处理](07.4.md) + - 7.5 [文件操作](07.5.md) + - 7.6 [字符串处理](07.6.md) + - 7.7 [小结](07.7.md) +* 8.[Web服务](08.0.md) + - 8.1 [Socket编程](08.1.md) + - 8.2 [WebSocket](08.2.md) + - 8.3 [REST](08.3.md) + - 8.4 [RPC](08.4.md) + - 8.5 [小结](08.5.md) +* 9.[安全与加密](09.0.md) + - 9.1 [预防CSRF攻击](09.1.md) + - 9.2 [确保输入过滤](09.2.md) + - 9.3 [避免XSS攻击](09.3.md) + - 9.4 [避免SQL注入](09.4.md) + - 9.5 [存储密码](09.5.md) + - 9.6 [加密和解密数据](09.6.md) + - 9.7 [小结](09.7.md) +* 10.[国际化和本地化](10.0.md) - 10.1 [设置默认地区](10.1.md) - 10.2 [本地化资源](10.2.md) - 10.3 [国际化站点](10.3.md) - 10.4 [小结](10.4.md) -* 11.[错误处理,调试和测试](11.md) +* 11.[错误处理,调试和测试](11.0.md) - 11.1 [错误处理](11.1.md) - 11.2 [使用GDB调试](11.2.md) - 11.3 [Go怎么写测试用例](11.3.md) - 11.4 [小结](11.4.md) -* 12.[部署与维护](12.md) +* 12.[部署与维护](12.0.md) - 12.1 [应用日志](12.1.md) - 12.2 [网站错误处理](12.2.md) - 12.3 [应用部署](12.3.md) - 12.4 [备份和恢复](12.4.md) - 12.5 [小结](12.5.md) -* 13.[如何设计一个Web框架](13.md)  +* 13.[如何设计一个Web框架](13.0.md)  - 13.1 [项目规划](13.1.md)  - 13.2 [自定义路由器设计](13.2.md) - 13.3 [controller设计](13.3.md) - 13.4 [日志和配置设计](13.4.md) - 13.5 [实现博客的增删改](13.5.md) - 13.6 [小结](13.6.md)  -* 14.[扩展Web框架](14.md) +* 14.[扩展Web框架](14.0.md) - 14.1 [静态文件支持](14.1.md) - 14.2 [Session支持](14.2.md) - 14.3 [表单支持](14.3.md)