教你搭建一个简朴的Go Web处事器
上面代码执行监控端口之后,挪用了srv.Serve(net.Listener)函数,这个函数就是处理赏罚吸取客户端的哀求信 息。这个函数内里起了一个for{},起首通过Listener吸取哀求,其次建设一个 Conn,最后单独开了一个 goroutine,把这个哀求的数据当做参数扔给这个conn行止事:go c.serve()。这 个就是高并发浮现了, 用户的每一次哀求都是在一个新的goroutine行止事,彼此不影响。
conn起首会理会request:c.readRequest(),然后获取响应的handler:handler := c.server.Handler,也就是我们适才在挪用函数ListenAndServe时辰的第二个参数,我们前面例子转达的是nil,也就是为空,那么默认获取handler = DefaultServeMux,那么这个变量用来做什么的呢?对,这个变量就是一个路由器,它用来匹配url跳转到其响应的handle函数,那么这个我们有配置过吗?有,我们挪用的代码内里第一句不是挪用了http.HandleFunc("/", sayhelloName)嘛。这个浸染就是注册了哀求/的路由法则,当哀求uri为"/",路由就会转到函数sayhelloName,DefaultServeMux会挪用ServeHTTP要领,这个要领内部着实就是挪用sayhelloName自己,最后通过写入response的信息反馈到客户端。 一个http毗连处理赏罚流程 至此我们的三个题目已经所有获得相识答,你此刻对付Go怎样让Web跑起来的是否已经根基相识 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |