深入理解Go语言中的Dispatcher
Go使用goroutines来处理connection的读写事件,不会阻塞:c即为创建的connection,保存了该次请求的信息,然后再传递到对应的handler,handler就可以读取到请求的header信息,保证了请求之间独立。上面代码中提到了c.serve()方法。其实内部是调用了http包默认的路由器,通过路由器把本次请求的信息传递到了后端的处理函数。如果没有适用于请求的注册处理程序,则Handler返回“未找到页面”处理程序和空模式。Go其实支持外部实现的路由器 ListenAndServe的第二个参数就是用以配置外部路由器的,它是一个Handler接口,即外部路由器只要实现了Handler接口就可以,我们可以在自己实现的路由器的ServeHTTP里面实现自定义路由功能。
下载地址
用户评论