mirror of
https://github.com/labstack/echo.git
synced 2025-06-06 23:46:16 +02:00
Set the Content-Encoding header only when requested
Also if the Size == 0 unset the Content-Encoding header
This commit is contained in:
parent
6f90742dec
commit
998c5de65f
@ -66,16 +66,18 @@ func GzipWithConfig(config GzipConfig) echo.MiddlewareFunc {
|
|||||||
|
|
||||||
res := c.Response()
|
res := c.Response()
|
||||||
res.Header().Add(echo.HeaderVary, echo.HeaderAcceptEncoding)
|
res.Header().Add(echo.HeaderVary, echo.HeaderAcceptEncoding)
|
||||||
res.Header().Add(echo.HeaderContentEncoding, gzipScheme) // issue #806
|
|
||||||
if strings.Contains(c.Request().Header.Get(echo.HeaderAcceptEncoding), gzipScheme) {
|
if strings.Contains(c.Request().Header.Get(echo.HeaderAcceptEncoding), gzipScheme) {
|
||||||
|
res.Header().Add(echo.HeaderContentEncoding, gzipScheme) // issue #806
|
||||||
rw := res.Writer
|
rw := res.Writer
|
||||||
w, err := gzip.NewWriterLevel(rw, config.Level)
|
w, err := gzip.NewWriterLevel(rw, config.Level)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
|
|
||||||
if res.Size == 0 {
|
if res.Size == 0 {
|
||||||
|
if res.Header().Get(echo.HeaderContentEncoding) == gzipScheme {
|
||||||
|
res.Header().Del(echo.HeaderContentEncoding)
|
||||||
|
}
|
||||||
// We have to reset response to it's pristine state when
|
// We have to reset response to it's pristine state when
|
||||||
// nothing is written to body or error is returned.
|
// nothing is written to body or error is returned.
|
||||||
// See issue #424, #407.
|
// See issue #424, #407.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user