Go 语言里面提供了一个完善的 net/http 包,通过 http 包可以很方便的就搭建起来一个可以运行的 web 服务。同时使用这个 包能很简单地对 web 的路由,静态文件,模版,cookie 等数据进行操作.
Demo 代码走起。
url: http://localhost:9090/aa?a=1&b=2
package main
import (
"fmt"
"log"
"net/http"
"strings"
)
func dispatcher(w http.ResponseWriter, r *http.Request) {
r.ParseForm()
str := make([]string, 10)
strings.Join(str, r.URL.Path)
strings.Join(str, "\n")
for k, v := range r.Form {
str = append(str, k)
str = append(str, "=")
str = append(str, v...)
str = append(str, "\n")
fmt.Println("key:", k)
fmt.Println("val:", strings.Join(v, ""))
}
str = append(str, "Hello world ")
fmt.Fprintln(w, strings.Join(str, " ")) //这个写入到 w 的是输出到客户端的
}
func main() {
http.HandleFunc("/", dispatcher) //设置访问的路由
err := http.ListenAndServe(":9090", nil) //设置监听的端口
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
====================================
Go 就是这么牛掰,直接就监听 tcp 端口,不再需要nginx,apache等这类软件了。自己一个人就搞定了。