У меня есть очень простой пример сервера на Go, где я пытаюсь заставить браузер кэшировать страницу
package main
import (
"fmt"
"net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Println("handle")
w.Header().Set("Cache-Control", "public, max-age=31536000, immutable")
w.Write([]byte("<html>ТЕСТ</html>"))
}
func main() {
http.HandleFunc("/", handler)
http.ListenAndServe(":8080", nil)
}
Но при последовательной отправке запросов получаю такие ответы
HTTP/1.1 200 OK
Cache-Control: public, max-age=31536000, immutable
Date: Tue, 22 Apr 2025 22:29:21 GMT
Content-Length: 21
Content-Type: text/html; charset=utf-8
HTTP/1.1 200 OK
Cache-Control: public, max-age=31536000, immutable
Date: Tue, 22 Apr 2025 22:29:26 GMT
Content-Length: 21
Content-Type: text/html; charset=utf-8
HTTP/1.1 200 OK
Cache-Control: public, max-age=31536000, immutable
Date: Tue, 22 Apr 2025 22:29:27 GMT
Content-Length: 21
Content-Type: text/html; charset=utf-8
т.е. Date меняется, кэширования нет. В браузере (firefox) также нет пометки о том, что страничка взята из кэша.
Какие только я не пробовал заголовки, что только не делал - не кэшируется и все страница в браузере