我开始在Go中编写服务器端应用程序。我想使用Accept-Encodingrequest标头来确定是否使用压缩响应实体GZIP。我曾希望找到一种直接使用http.Serveorhttp.ServeFile方法执行此操作的方法。这是一个很普遍的要求。我错过了什么还是我需要推出自己的解决方案?
3 回答
ibeautiful
TA贡献1993条经验 获得超5个赞
纽约时报已经发布了用于Go的gzip中间件软件包。
您只要http.HandlerFunc通过他们的操作GzipHandler,您就完成了。看起来像这样:
package main
import (
"io"
"net/http"
"github.com/nytimes/gziphandler"
)
func main() {
withoutGz := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/plain")
io.WriteString(w, "Hello, World")
})
withGz := gziphandler.GzipHandler(withoutGz)
http.Handle("/", withGz)
http.ListenAndServe("0.0.0.0:8000", nil)
}
- 3 回答
- 0 关注
- 182 浏览
添加回答
举报
0/150
提交
取消