Within HTTP 1.1, WebSphere® Voice Server provides support for a shared cache.
More precisely, WebSphere Voice Server supports a per-node-shared, HTTP public cache. This means all external references to public resources are cached and available to all sessions operating on that WebSphere Voice Server node. Any resource without a cache-control directive will be treated as shareable (public). Any resource with a cache-control directive of private will be treated as if its directive was no-cache. Any resource with a cache-control directive of 'no-store' will be treated as if its directive was no-cache.
The duality of HTTP allows clients to specify cache control directives. These are called cache request directives and are defined in MRCP and HTTP to be min-fresh, max-age, and max-stale. WebSphere Voice Server supports these directives in accordance with HTTP 1.1. Briefly defined, max-age permits a client the ability to restrict the age of a cached resource to be no greater than the provided value. In other words, the client is willing to accept a resource from the cache whose age in the cache is no greater than this value. On the other hand, max-stale permits a client the ability to restrict the age of an expired cached resource to be no greater than the provided value. In other words, the client is willing to accept stale content (expired) so long as it isn't stale for more than the provided value. HTTP also defines min-fresh. This header permits the client the ability to restrict the request to a resource whose freshness lifetime is greater than the value provided. In other words, the client can request a resource which will not expire for the minimum freshness value provided. In all cases, if the resource cannot be satisfied by the cache, the HTTP/application server is checked for a fresher copy. If one is available, it is fetched, placed in the cache and provided to the client. Otherwise the cached copy is used.
<meta http-equiv="Expires" content="0">
WebSphere Voice Server supports the cache correctness rules defined by HTTP 1.1. In addition, WebSphere Voice Server also supports the HTTP "conditional GET" mechanism to reduce network traffic associated with revalidation when a resource is the freshest available. More specifically, if a cached resource fails to satisfy a client request, WebSphere Voice Server issues a GET with the 'if-modified-since' field set. If the response is 304 (Not Modified), WebSphere Voice Server does not re-request the resource rather, it uses the cached content according to HTTP 1.1.
It is helpful to use only the freshest copy of a resource. This can help, for example, in problem determination or in early application development.
WebSphere Voice Server manages an origin server cache, normally referred to as the rrcache or the L1 cache. It provides support for HTTP public cache described previously, for all resource types entering WebSphere Voice Server thru the HTTP protocol. In addition, the L1 cache is responsible for maintaining the HTTP cache correctness rules for the system. The cache is self managing in that it not only provides boundaries for both its memory cache size and file cache size but also actively manages those boundaries. LRU (least recently used) and HTTP algorithms are used to decide what to prune when space is needed for new resources entering WebSphere Voice Server. See the Configuration parameters topic for available boundary parameters and their descriptions. Resources whose HTTP cache-control header is set to private, no-cache or no-store are not cached in either the memory or file system cache. The L1 cache size should be configured to a value that will contain all public resource used by the system including grammars.
All resources hosted by WebSphere Voice Server for use in speech applications (recorded audio via save-waveform, and save-best-waveform do not set any caching directives. For recorded audio, the default IHS server settings are used (no expires, default media-type).