# 12 Go网络编程基础

在前一章中，我们讨论了使用`benchmark`函数对Go代码进行性能测试、如何为Go代码编写单元测试、示例函数的编写、交叉编译和Go代码的调优，以及如何生成Go代码的文档。

本章主要介绍Go语言的网络编程，包括如何创建Web应用程序，并使其可以在计算机网络或互联网上运行。在下一章则介绍如何开发TCP和UDP的应用程序。

为了顺利地完成本章和下一章的内容，本章还介绍一些关于HTTP协议、网络以及网络工作原理的知识。

在这一章中，将学习以下主题：

* TCP/IP简介及其重要性
* IPv4和IPv6相关协议
* 命令行工具**netcat**
* 在Go中实现**DNS**查询
* `net/http`包简介
* `http.Response`、`http.Request`和`http.Transport`结构简介
* 使用Go创建Web服务器
* 使用Go进行Web客户端编程
* 使用Go创建网站
* `http.NewServeMux`类型介绍
* **Wireshark**和**tshark**介绍
* HTTP连接的超时处理（客户端和服务端）

对于本章介绍的一些底层知识相对独立，可以跳过学习——在需要的时候可以重新复习这些内容。
