package main
import (
"log"
"net/http"
)
/*
方式一
自己声明servemux。这种方式比较安全,推荐使用
*/
func main() {
mux := http.NewServeMux()
mux.HandleFunc("/hello", hello)
log.Println("Starting server on :4000")
err := http.ListenAndServe(":4000", mux)
log.Fatal(err)
}
/*
方式二
没有声明servemux,其实是net/http底层帮你初始化了默认的servemux:设置了全局的变量DefaultServeMux:
var DefaultServeMux = NewServeMux()
虽然这种方式代码稍微短一些,但是还是推荐使用方式一。因为DefaultServeMux是全局变量,
任何包都可以访问它并注册路由,包括应用程序导入的任何第三方包。如果其中一个第三方软件包被破坏,他们可能会使用DefaultServeMux向web公开恶意处理程序。
因此,为了安全起见,通常最好避免使用DefaultServeMux和相应的辅助函数。使用您自己的局部范围的servemux
*/
func main2() {
http.HandleFunc("/hello", hello)
log.Println("Starting server on :4001")
err := http.ListenAndServe(":4001", nil)
log.Fatal(err)
}
func hello(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("hello world,couwboy~~~~"))
}
go创建一个web服务器的细节
最新推荐文章于 2022-08-18 15:25:38 发布