From c24d574f9049cbea4e42208498149b204a873ff5 Mon Sep 17 00:00:00 2001 From: Christophe Gagnier Date: Thu, 28 Jan 2021 22:16:36 -0500 Subject: [PATCH] Add Cache-Control to index --- wled00/wled_server.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/wled00/wled_server.cpp b/wled00/wled_server.cpp index 4970248f..1e9e9c36 100644 --- a/wled00/wled_server.cpp +++ b/wled00/wled_server.cpp @@ -229,14 +229,32 @@ void serveIndexOrWelcome(AsyncWebServerRequest *request) } } +bool handleIfNoneMatchCacheHeader(AsyncWebServerRequest* request) +{ + AsyncWebHeader* header = request->getHeader("If-None-Match"); + if (header && header->value() == String(VERSION)) { + request->send(304); + return true; + } + return false; +} + +bool setStaticContentCacheHeaders(AsyncWebServerResponse *response) +{ + response->addHeader(F("Cache-Control"),"max-age=2592000"); + response->addHeader(F("ETag"), String(VERSION)); +} void serveIndex(AsyncWebServerRequest* request) { if (handleFileRead(request, "/index.htm")) return; + if (handleIfNoneMatchCacheHeader(request)) return; + AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", PAGE_index, PAGE_index_L); response->addHeader(F("Content-Encoding"),"gzip"); + setStaticContentCacheHeaders(response); request->send(response); }