// -*- mode: java; c-basic-offset: 2; -*- // Copyright 2009-2011 Google, All Rights reserved // Copyright 2011-2012 MIT, All rights reserved // Released under the Apache License, Version 2.0 // http://www.apache.org/licenses/LICENSE-2.0 package com.google.appinventor.server.util; import com.google.common.annotations.VisibleForTesting; import javax.servlet.http.HttpServletResponse; /** * Methods for setting HTTP cache-control headers on responses. * * @author sharon@google.com (Sharon Perl) */ public class CacheHeadersImpl implements CacheHeaders { @VisibleForTesting static final String TIME_IN_THE_PAST = "Fri, 01 Jan 1990 00:00:00 GMT"; @Override public void setNotCacheable(HttpServletResponse resp) { resp.setHeader("Cache-Control","no-cache, no-store, max-age=0, must-revalidate"); resp.setHeader("Pragma", "no-cache"); resp.setHeader("Expires", TIME_IN_THE_PAST); } @Override public void setCacheablePrivate(HttpServletResponse resp) { long nowMillis = System.currentTimeMillis(); resp.setDateHeader("Date", nowMillis); resp.setDateHeader("Expires", nowMillis); // Forces HTTP/1.0 not to cache resp.setHeader("Cache-Control", "private,max-age=0"); } }