仓库:https://github.com/julienschmidt/httprouter
HttpRouter是一种轻量高性能的HTTP请求路由器(也称为多路复用器)。
与Go中net/http包的默认mux相比,此路由器支持路由模式中的变量并匹配请求方法。
该路由器针对高性能和小内存占用进行了优化。
即使有很长的路径和大量的路由,它也能很好地扩展。
对于其他路由器,如http.ServeMux,请求的 URL 路径可以匹配多个模式。
因此他们有一些笨拙的模式优先规则,比如最长匹配或先注册,先匹配。
通过这个路由器的设计,一个请求只能匹配一个路由或者没有路由。
因此,也没有意外匹配,这对于 SEO 非常有用并改善了用户体验。
选择您喜欢的 URL 样式,如果缺少尾部斜杠或多出一个,路由器会自动重定向客户端。
当然,只有在新路径有处理程序的情况下才会这样做。如果你不喜欢它,你可以关闭这个行为。
除了无需额外成本检测丢失或额外的尾部斜杠外,路由器还可以修复错误情况并删除多余的路径元素(如../或//)。
HttpRouter 可以通过进行不区分大小写的查找并重定向到正确的 URL。