var cache = map[string]string{} func handler(w http.ResponseWriter, r *http.Request) { key := r.URL.Path if v, ok := cache[key]; ok { w.Write([]byte(v)) return } v := compute(key) cache[key] = v w.Write([]byte(v)) }