我们平时浏览网页的时候,会打开浏览器,然后输入网址后就可以显示出想要浏览的内容。这个看似简单的过程背后却隐藏了非常复杂的操作。
对于普通的上网过程,系统其实是这样做的:
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", index) // index 为向 url发送请求时,调用的函数
log.Fatal(http.ListenAndServe("localhost:8000", nil))
}
func index(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "城东书院")
}
使用 go run 命令运行上面的代码:
提示:运行 Web 服务器会占用命令行窗口,我们可以使用 Ctrl+C 组合键来退出。
上面的代码只是展示了 Web 服务器的简单应用,下面我们来完善一下,为这个服务器添加一个页面并设置访问的路由。
首先我们准备一个 html 文件,并命名为 index.html,代码如下所示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>城东书院</title>
</head>
<body>
<h1>城东书院</h1>
</body>
</html>
然后将我们上面写的 Web 服务器的代码简单修改一下,如下所示:
package main
import (
"io/ioutil"
"log"
"net/http"
)
func main() {
// 在/后面加上 index ,来指定访问路径
http.HandleFunc("/index", index)
log.Fatal(http.ListenAndServe("localhost:8000", nil))
}
func index(w http.ResponseWriter, r *http.Request) {
content, _ := ioutil.ReadFile("./index.html")
w.Write(content)
}
使用 go run 命令运行: