Ответ 1
Для HTTP-ответов, сжатых gzip, пока нет встроенной поддержки. Но добавить это довольно тривиально. Посмотри на
https://gist.github.com/the42/1956518
также
https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/cgUp8_ATNtc
Я начинаю писать серверные приложения в Go. Я хотел бы использовать заголовок запроса Accept-Encoding, чтобы определить, должен ли GZIP объект ответа. Я надеялся найти способ сделать это напрямую, используя методы http.Serve или http.ServeFile.
Это довольно общее требование; я что-то пропустил или мне нужно катить свое решение?
Для HTTP-ответов, сжатых gzip, пока нет встроенной поддержки. Но добавить это довольно тривиально. Посмотри на
https://gist.github.com/the42/1956518
также
https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/cgUp8_ATNtc
The New York Times выпустили пакет промежуточного программного обеспечения gzip для Go.
Вы просто передаете 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)
}