mapserver/web/cachedfs.go

25 lines
498 B
Go
Raw Normal View History

package web
import (
"fmt"
"net/http"
"strings"
"time"
)
func CachedServeFunc(h http.HandlerFunc) http.HandlerFunc {
var etag = fmt.Sprintf(`"%d"`, time.Now().UnixMicro())
return func(w http.ResponseWriter, r *http.Request) {
if match := r.Header.Get("If-None-Match"); match != "" {
if strings.Contains(match, etag) {
w.WriteHeader(http.StatusNotModified)
return
}
}
w.Header().Set("Cache-Control", "max-age=60")
w.Header().Set("ETag", etag)
h.ServeHTTP(w, r)
}
}