【Duke】HTTP服务 043 - PingPongGooo/GoFoundation GitHub Wiki

Default Router

func (sh serveHandler) ServeHTTP(rw RespomseWriter, req *Request){
    handler := sh.srv.Handler
    if handler == nil{
        handler = DefaultServeMux // 使用缺省的Router
    }
    if req.RequestURI == "*" && req.Method == "OPTIONS" {
         handler = globalOptionsHandler{}
    }
    handler.ServeHTTP(rw, req)
}

路由规则

URL 分为两种, 末尾是 /: 表示一个子树,后面可以跟其他子路径; 末尾不是/, 表示一个叶子, 固定的路径
以/ 结尾的URL可以匹配它的任何子路径,比如/images会匹配 /images/cute-cat.jpg

它采用最长匹配原则,如果有多个匹配,一定采用匹配路径最长的那个进行处理

如果没有找到任何匹配项,会返回404错误