从零开始学Go web——第二天
第一天我们了解了与web息息相关的HTTP协议,聊了聊Go与web的关系等,接下来让我们一起写一个实战的GO语言web例子,体会Go实现web的简便性!
一、安装Go语言
具体的安装方法可以参考官方的教程:https://go.dev/doc/install
二、建立web目录
2.1 创建GO语言包目录
pzs@pzs-VirtualBox:~/go_study$ mkdir -p $HOME/go_study/firstwebapp
pzs@pzs-VirtualBox:~/go_study/firstwebapp$ go mod init github.com/pzs/firstwebapp
go: creating new go.mod: module github.com/pzs/firstwebapp
go: to add module requirements and sums:
go mod tidy
2.2 创建Go web文件
pzs@pzs-VirtualBox:~/go_study/firstwebapp$ touch server.go
web文件server.go
内容如下所示:
package main // 声明程序所属的包, pcakge后面的就是包名。Go语言要求可执行程序必须位于main包中
import (
"fmt"
"net/http" // HTTP
)
// 从Request结构中提取相关信息,创建一个HTTP响应,之后通过ResponseWriter接口写入到客户端
func handler(writer http.ResponseWriter, request *http.Request) {
fmt.Fprintf(writer, "Hello world %s", request.URL.Path[1:])
}
func main() {
// handler为事件处理的回调函数
http.HandleFunc("/", handler)
// 开启服务端监听端口
http.ListenAndServe(":8083", nil)
}
三、编译并运行Go web应用
Go语言与其它语言不同的是,web应用的运行环境由net/http直接提供,包和应用源代码会被一起编译为一个可以快速部署的独立环境,而不需要依赖其它应用服务器。
3.1 编译并运行
pzs@pzs-VirtualBox:~/go_study/firstwebapp$ go build server.go #编译Go语言程序,生成的可执行程序
pzs@pzs-VirtualBox:~/go_study/firstwebapp$ ./server # 执行Go语言可执行程序
3.2 查看结果
在浏览器内输入: http://127.0.0.1:8083/myfirstwebapp,即可查看到结果。
到此,我们就成功地创建了一个属于自己的第一个Go web程序!