gzip

package
v1.2.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 25, 2022 License: BSD-3-Clause Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var GZIP = func(handler http.Handler) http.Handler {
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		if strings.Contains(r.URL.Path, "metrics") {
			handler.ServeHTTP(w, r)
			return
		}

		for _, header := range r.Header["Upgrade"] {
			if header == "websocket" {

				handler.ServeHTTP(w, r)
				return
			}
		}
		if strings.Contains(r.Header.Get("Accept-Encoding"), "gzip") {
			gwriter := NewWrappedResponseWriter(w)
			defer gwriter.Flush()
			gwriter.Header().Set("Content-Encoding", "gzip")
			handler.ServeHTTP(gwriter, r)
			return
		}
		handler.ServeHTTP(w, r)
	})
}

Functions

This section is empty.

Types

type WrappedResponseWriter

type WrappedResponseWriter struct {
	// contains filtered or unexported fields
}

func NewWrappedResponseWriter

func NewWrappedResponseWriter(w http.ResponseWriter) *WrappedResponseWriter

func (*WrappedResponseWriter) Flush

func (wrw *WrappedResponseWriter) Flush()

func (*WrappedResponseWriter) Header

func (wrw *WrappedResponseWriter) Header() http.Header

func (*WrappedResponseWriter) Hijack

func (wrw *WrappedResponseWriter) Hijack() (net.Conn, *bufio.ReadWriter, error)

func (*WrappedResponseWriter) Write

func (wrw *WrappedResponseWriter) Write(d []byte) (int, error)

func (*WrappedResponseWriter) WriteHeader

func (wrw *WrappedResponseWriter) WriteHeader(statuscode int)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL