首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为Go提供Go内容

为Go提供Go内容
EN

Stack Overflow用户
提问于 2012-12-29 01:34:28
回答 4查看 28.3K关注 0票数 43

我开始用Go编写服务器端应用程序。我想使用Accept-Encoding请求头来确定是否使用GZIP压缩响应实体。我曾希望找到一种直接使用http.Servehttp.ServeFile方法来完成此任务的方法。

这是一个相当普遍的需求;我是否遗漏了什么,或者我是否需要推出我自己的解决方案?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-29 07:17:43

目前还没有对gzip压缩的HTTP响应的“开箱即用”支持。但是添加它是相当微不足道的。看一看

https://gist.github.com/the42/1956518

也是

https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/cgUp8_ATNtc

票数 25
EN

Stack Overflow用户

发布于 2015-12-20 00:45:56

“纽约时报”发布了他们的gzip middleware package for Go

你只需通过他们的GzipHandler传递你的http.HandlerFunc,就完成了。它看起来是这样的:

代码语言:javascript
运行
复制
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)
}
票数 28
EN

Stack Overflow用户

发布于 2020-07-16 20:48:21

为了完整起见,我最终用一个简单的、专门解决这个问题的处理程序回答了我自己的问题。

这提供来自Go http服务器的静态文件,包括要求的性能增强功能。它基于标准的net/http ServeFiles,具有gzip/brotli和缓存性能增强。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14073393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档