title: What is Cloudfront Minimum TTL for?
body: <p>I am trying to understand <code>Minimum TTL</code>, <code>Maximum TTL</code> and <code>Default TTL</code> with this <a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesMinTTL" rel="noreferrer">document</a>.</p>
  
  <p>As my understanding, <code>Maximum TTL</code> is used when <code>HTTP cache header</code> appears in respons to limit maximum cache time and  <code>Default TTL</code> is used when there is no <code>HTTP cache header</code> to use as default cache time.</p>
  
  <p>However, for <code>Maximum TTL</code>, there is no specific mention.</p>
  
  <p>In addition, It mentions the relation with forwarding head. Does it mean that if I set any HTTP header to forward to an origin and <code>Minimum TTL</code> is not 0, it doesn't cache anything?</p>
  
  <blockquote>
    <p>Minimum TTL
    Specify the minimum amount of time, in seconds, that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The default value for Minimum TTL is 0 seconds.</p>
    
    <h3>Important</h3>
    
    <p>.  If you configure CloudFront to forward all headers to your origin for a cache behavior, CloudFront never caches the associated objects. Instead, CloudFront forwards all requests for those objects to the origin. In that configuration, the value of Minimum TTL must be 0.</p>
  </blockquote>