From 02f5703e3c0bccdee8101889a2d4abe42feb015d Mon Sep 17 00:00:00 2001 From: Matija Obreza Date: Mon, 17 Sep 2018 06:55:44 +0200 Subject: [PATCH] Tile server HTTP cache header maxAge depends on zoom level --- .../genesys2/server/api/v1/TileController.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/genesys2/server/api/v1/TileController.java b/src/main/java/org/genesys2/server/api/v1/TileController.java index 9b0e65ea5..536c08e78 100644 --- a/src/main/java/org/genesys2/server/api/v1/TileController.java +++ b/src/main/java/org/genesys2/server/api/v1/TileController.java @@ -56,7 +56,20 @@ public class TileController { response.setContentType(MediaType.IMAGE_PNG_VALUE); response.setContentLength(image.length); - response.setHeader(HttpHeaders.CACHE_CONTROL, "max-age=3600, s-maxage=3600, public, no-transform"); - response.getOutputStream().write(image, 0, image.length); + + // HTTP maxAge + int maxAge; + if (zoom < 4) { + maxAge = 60 * 60 * 24; // 24 hrs + } else if (zoom < 6) { + maxAge = 60 * 60 * 2; // 2 hrs + } else if (zoom < 8) { + maxAge = 60 * 60; // 1 hr + } else { + maxAge = 60 * 5; // 5 min + } + response.setHeader(HttpHeaders.CACHE_CONTROL, "max-age=" + maxAge + ", s-maxage=" + maxAge + ", public, no-transform"); + response.getOutputStream().write(image, 0, image.length); + response.getOutputStream().flush(); } } -- GitLab