Develop > Tailoring > Web tier > Setting web client preferences > Optimize web client cache control

Optimize web client cache control

Applies to User Roles:
System Administrator

You can define the web client cache control from the following control file on the Web tier server: <webtier>/WEB-INF/classes/application-context.xml. The web tier uses the incoming request URL to determine whether to apply one of the following cache filtering rules:

  • cacheFilter

  • neverCacheFilter

When the neverCacheFilter rule applies, the response page or resource will never be cached in the user's browser. When the cacheFilter rule applies, the user's browser caches the response page or resource for a period of time specified in the max-age value (in seconds).

The cacheControlProxy bean defines which web resources the cacheFilter and neverCacheFilter rules apply to. For example, the Web tier uses the cacheFilter rule for any web resources whose path matches /images/**, and sets the Expires' or 'Cache-Control' HTTP header in the response. The Web tier uses the neverCacheFilter rule on any web resources whose path matches /**/*.jsp, and sets the corresponding HTTP header in the response to disable browser caching for the matched resources.

Note We recommend that you do not change the default settings in the cacheControlProxy bean.

As of version 9.32, the directory structure of the Web tier has been modified to reflect the current build number of the Web tier. These changes were implemented because the SM Web tier is typically updated every few months. When these updates occur, it is sometimes necessary for users to clear their browser cache. For enterprise clients that have tens of thousands of users, getting all of those users to do this requirement is onerous. With this revised implementation, users will no longer need to clear their browser cache.

To change the max-age value:

Caution The default max-age value is 1555200 seconds (6 months). To better utilize browser cache, you are recommended to set the max-age property to a value no less than 1555200.

  1. Open the file <webtier>/WEB-INF/classes/application-context.xml in a text editor.
  2. In the cacheFilter bean section, set the max-age property to an appropriate value:
  3. <bean id="cacheFilter"
        <property name="headers">
            <entry key="Expires"><value>Sat, 6 May 2017 12:00:00 GMT</value></entry>
            <entry key="Cache-Control"><value>public, max-age=15552000</value></entry>

    The cacheFilter bean defines when the cached web resources will expire (based on the Expires key) or how long the user's browser will cache web resources (based on the max-age value, if any). The max-age value supersedes the Expires value. For example, if you set the max-age to 1555200 seconds (default), the user’s browser caches web resources for up to 180 days.

  4. Restart the web application server for your change to take effect.

Related concepts