anchor.diff:  Static resources should be served with appropriate `'Cache-Control'` and conditional
   headers for optimal performance.
   <<mvc-config-static-resources,Configuring a `ResourceHttpRequestHandler`>> for serving
  -static resources not only natively writes `'Last-Modified'` headers by reading files
  -metadata, but also `'Cache-Control'` if properly configured.
  +static resources not only natively writes `'Last-Modified'` headers by reading a file's
  +metadata, but also `'Cache-Control'` headers if properly configured.
   
   You can set the `cachePeriod` attribute on a `ResourceHttpRequestHandler` or use
   a `CacheControl` instance, which supports more specific directives:
  
positive.code: [[mvc-caching-etag-lastmodified]]
  === Support for the Cache-Control, ETag and Last-Modified response headers in Controllers
  
  Controllers can support `'Cache-Control'` `'ETag'` and/or `'If-Modified-Since'` HTTP requests;
  this is indeed recommended if a `'Cache-Control'` header is to be set on the response.
  This involves calculating a lastModified `long` and/or an Etag value for a given request,
  comparing it against the `'If-Modified-Since'` request header value, and potentially returning
  a response with status code 304 (Not Modified).
  
  As described in <<mvc-ann-httpentity>>, Controllers can access request/response using `HttpEntity` types.
  Controllers returning `ResponseEntity` can include HTTP caching information in responses like this:
  
  [source,java,indent=0]
  [subs="verbatim,quotes"]
  
negative.code: === Cache-Control HTTP header
  
  Spring Web MVC supports many use cases and ways to configure "Cache-Control" headers for
  an application. While https://tools.ietf.org/html/rfc7234#section-5.2.2[RFC 7234 Section 5.2.2]
  completely describes that header and its possible directives, there are several ways to
  address the most common cases.
  
  Spring Web MVC uses a configuration convention in several of its APIs:
  `setCachePeriod(int seconds)`:
  
  * A `-1` value won't generate a `'Cache-Control'` response header.
  * A `0` value will prevent caching using the `'Cache-Control: no-store'` directive.
  * An `n > 0` value will cache the given response for `n` seconds using the
  `'Cache-Control: max-age=n'` directive.
  
  The {javadoc-baseurl}/org/springframework/http/CacheControl.html[`CacheControl`] builder
  class simply describes the available "Cache-Control" directives and makes it easier to
  build your own HTTP caching strategy. Once built, a `CacheControl` instance can then be
  accepted as an argument in several Spring Web MVC APIs.
  
  
  [source,java,indent=0]
  