为了账号安全,请及时绑定邮箱和手机立即绑定

为Go提供压缩的内容

为Go提供压缩的内容

Go
qq_笑_17 2021-05-09 17:02:40
我开始在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)

}


查看完整回答
反对 回复 2021-05-24
  • 3 回答
  • 0 关注
  • 182 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信