跳转到内容

Gzip

Gzip 中间件使用 gzip 压缩方案压缩 HTTP 响应。

所有核心中间件都位于 middleware 包中:

import "github.com/labstack/echo/v5/middleware"
e.Use(middleware.Gzip())
e := echo.New()
e.Use(middleware.GzipWithConfig(middleware.GzipConfig{
Level: 5,
}))
e := echo.New()
e.Use(middleware.GzipWithConfig(middleware.GzipConfig{
Skipper: func(c *echo.Context) bool {
return strings.Contains(c.Path(), "metrics") // change "metrics" to your own path
},
}))

GzipConfig · github.com/labstack/echo/v5@5196b9b

字段说明由英文源码注释生成。

包源码中的字段
字段类型说明源码
SkipperSkipperSkipper defines a function to skip middleware.L27
LevelintGzip compression level. Optional. Default value -1.L31
MinLengthintLength threshold before gzip compression is applied. Optional. Default value 0. Most of the time you will not need to change the default. Compressing a short response might increase the transmitted data because of the gzip format overhead. Compressing the response will also consume CPU and time on the server and the client (for decompressing). Depending on your use case such a threshold might be useful. See also: https://webmasters.stackexchange.com/questions/31750/what-is-recommended-minimum-object-size-for-gzip-performance-benefitsL44
包源码中的函数
类型源码
func Gzip() echo.MiddlewareFuncL59
func GzipWithConfig(config GzipConfig) echo.MiddlewareFuncL64
// Effective defaults applied when fields are left unset.
GzipConfig{
Skipper: DefaultSkipper,
Level: -1,
MinLength: 0,
}