初窥 http 服务器 golang

type myHandler struct{}
func main() {    
    http.HandleFunc("/", Hello)             //没有指定路由则匹配到根路由    
    http.HandleFunc("/bye", Saybye)         //不能带括号    
    mymux := http.NewServeMux()             //创建一个handlefunc的底层结构    
    mymux.Handle("/myhandle", &myHandler{}) //有handle和handlefunc,http.handlefunc底层就是servermux.handlefunc    
    //传入一个handle    
    log.Println("服务开始运行")    
    //创建自己的服务,listenandserve的底层也是多封装了一层    
    myserve := &http.Server{        
                    Addr: ":4000",    
                    }    
    myserve.Handler = mymux    
    //log.Fatal(myserve.ListenAndServe())    
    log.Fatal(http.ListenAndServe(":4001", nil))    
    //第二个参数也是handle,如果不传则myhandle路由不生效,传了则根路由和bye路由不生效    
    //将根路由和bye路由绑定的http换成mymux则全部生效
}

func (*myHandler) ServeHTTP(w http.ResponseWriter, s *http.Request) { //为Myhandle绑定一个方法    
    w.Write([]byte("这是调用底层创建http服务的第二种方法 url:" + s.URL.String()))
    }
func Hello(w http.ResponseWriter, s *http.Request) {    
    w.Write([]byte("你好,golang,第一种路由写法 Hello url:" + s.URL.String()))
    }
func Saybye(w http.ResponseWriter, s *http.Request) {    
    w.Write([]byte("第一种路由写法 Saybye url:" + s.URL.String()))
    }

原文链接:初窥http服务器-GOLANG

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容