HTTP服务
HTTP服务
//简单语言+高效协程机制
import (
"fmt"
"net/http"
_"net/http/pprof"
"time"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Println(w,"Hello World")
})
http.HandleFunc("/time", func(w http.ResponseWriter, r *http.Request) {
t := time.Now()
timeStr := fmt.Sprintf("{\"time\":\"%s\"}",t)
w.Write([]byte(timeStr))
})
http.ListenAndServe(":8080",nil)
}
//观察Golang Http服务器的路由规则
//在空的时候 使用缺省的Router 根目录问题
//路由规则
//URL分两种 末尾是/: 表示一个子树 后面可以跟其他子路径;末尾不是/,表示一个叶子,固定的路径 以/结尾的URL可以匹配任何他的子路径
//它采用最长匹配原则,如果有多个匹配,一定采用匹配路劲最长的那个进行处理
//如果找不到任何匹配项,返回404错误
/*
func (sh serverHandler) ServeHTTP (rw http.ResponseWriter,req *http.Request) {
handler := sh.srv.Handler
if handler == nil{
handler = http.DefaultServeMux //使用缺省的Router
}
if req.RequestURI == "*" && req.Method == "OPTIONS"{
handler = globalOptionsHandler{}
}
handler.ServeHTTP(rw,req)
}
*/