Go Web开发入坑指南
在Go语言中开发Web应用,真的是一件非常简单的事情,因为Go语言标准库中就有非常成熟且简单的Web开发包:net/http。
net/http封装了开发Web应用所需要的大部分功能,因此,在Go语言中使用net/http开发Web应用程序时,我们甚至都不用像其他语言(比如PHP)一样需要自己再搭一个Apache或nginx等Web服务器,而是只需要简单几行代码就可以搭建一个Web服务应用。
Web基础
当然,虽然使用Go的net/http包可以简单开发Web应用,但我们在开发中仍然需要牢固地掌握开发Web程序所需要的基础知识,而Web开发中最基础和最核心的知识就是:HTTP协议。
http协议是Web服务器与客户端(最常见就是浏览器)之间通讯的语言与规范,浏览器向Web发起请求到Web服务器响应并结束连接,整个过程如下图所示:
![6ed008742a4f2b00ab454a582cf24360.png](https://i-blog.csdnimg.cn/blog_migrate/0651dccb10fe00db0af7eab09b6724ce.jpeg)
图片摘自《HTTP权威指南》
请求与响应
一个完整http事务,由一个客户端的请求和Web服务器响应构成,客户端发起的请求,包括三个部分:请求行、请求头和请求体,而Web服务器的响应同样包含三部分:响应行、响应头和响应体,如下图所示:。
![c8b3535b23de7729cee3e0f5095b7680.png](https://i-blog.csdnimg.cn/blog_migrate/d779fff610f2c5f0c12be0cc5e41937f.jpeg)
图片摘自《HTTP权威指南》
http协议的相关知识远不只这些,我们有空再谈谈。
Go创建Web服务器的几种方式
http.HandleFunc函数
使用HandleFunc函数是http封装好的一个函数,可以直接使用,第一个参数是web请求路径,第二个参数是的func(writer http.ResponseWriter, request *http.Request)函数。
再使用http.ListenAndServe(":8080