gin gzip is failed. maybe should fix it
gonboy opened this issue · 1 comments
gonboy commented
please check . the same to Issue#400
Yes. I found gzip is invalid.
package main
import (
"fmt"
"github.com/gin-gonic/contrib/gzip"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.Use(gzip.Gzip(gzip.BestCompression))
r.GET("/ping", func(c *gin.Context) {
fmt.Println("return string")
c.String(200, "welcome to china, baby")
})
r.Run(":80")
}
GOPATH\src\github.com\gin-gonic\contrib\gzip\gzip.go
func Gzip(level int) gin.HandlerFunc {
return func(c *gin.Context) {
if !shouldCompress(c.Request) {
return
}
gz, err := gzip.NewWriterLevel(c.Writer, level)
if err != nil {
return
}
c.Header("Content-Encoding", "gzip")
c.Header("Vary", "Accept-Encoding")
c.Writer = &gzipWriter{c.Writer, gz}
defer func() {
c.Header("Content-Length", "0")
gz.Close()
}()
c.Next()
}
}
questions:
- if set
c.Header("xxxContent-Encoding", "aaa")
c.Header("123Content-Encoding", "aaa")
you can track the before Http header .
but if set
c.Header("Content-Encodingxxxx", "aaa")
couldn't track it
<&emsp> - couldn't find any zip information . except:
Vary: Accept-Encoding
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
Vary: Accept-Encoding
Date: Thu, 19 Jan 2017 07:36:37 GMT
Content-Length: 22
welcome to china, baby
easonlin404 commented
@gonboy I've tested. It's work for me.
package main
import (
"fmt"
"github.com/gin-contrib/gzip"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.Use(gzip.Gzip(gzip.BestCompression))
r.GET("/ping", func(c *gin.Context) {
fmt.Println("return string")
c.Header("Content-Encodingxxxx", "aaa")
c.String(200, "welcome to china, baby")
})
r.Run(":8081")
}