HTTP кеширование. Заголовки в Go.

Ответ

Cache-Control (max-age, no-cache, no-store, private, public), ETag, Last-Modified. При повторном запросе клиент шлет If-None-Match (ETag) или If-Modified-Since; сервер отвечает 304 Not Modified при неизменности. В Go выставляют заголовки в ответе; для 304 сравнивают If-None-Match с текущим ETag и при совпадении пишут 304 без тела.

w.Header().Set("Cache-Control", "public, max-age=3600")
w.Header().Set("ETag", "\""+etag+"\"")
if r.Header.Get("If-None-Match") == "\""+etag+"\"" {
    w.WriteHeader(304)
    return
}
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.