- Quick start
- Basic concept
- Working with Helicon Jet
- Product information
Server side cache
Helicon Jet can cache compressed server responses for better
performance. It does not use in-memory cache technique as most competitors,
instead we have utilized built-in Windows OS and IIS cache features and indicated
up to two times performance gain over standard in-memory cache solution.
Helicon Jet stores its cache on a disk in an easy to understand file structure. You can limit the size of the cache directory on the Common settings page. When this directory reaches cache size limit, garbage collector will start collecting rarely accessed files, so cache will always include most used files.
Helicon Jet can cache dynamic content. This may significantly
decrease load of your server, especially if your home and popular pages are
dynamic. For dynamic content you may need to enable Append
query string to cache filenames feature so for different query string parameter
and values Helicon Jet will create different cache files. Also you will need
to specify cache expiration timeout for a folder or individual
file so the files in cache will be updated after this timeout.
There is no need to set up expiration timeout for static files because Helicon Jet will update these files immediately after any modification to the master file.
You should never try to cache user-specific (private) data like forums, different consoles, etc. Single user cannot generate much load to the server so caching this data will not help in load distribution, but it can flood cache subsystem with a number of useless files. Any dynamic page or data that needs user login or user session should not be cached.
To enable static content caching you don’t need to do anything except enabling cache on the directory level. Static content cache is enabled by default and fully automatically. But dynamic content caching is disabled by default. If you want to enable dynamic cache for some specific file or directory (for example site homepage), don't forget to set Expiration timeout value for dynamic content or some content may never been updated. For example if you set cache expiration timeout for 60 seconds, changes to the page content will show on your site not more than one minute after you change database (or other backend data appearing on the page), but this cache will dramatically decrease load on your server because in fact pages will run and query database only once per minute.
Also Helicon Jet cache system does respect Cache-Control HTTP header instructions
for both request and response HTTP headers. The Cache-Control: no-cache
or Cache-Control: no-store instructions in request will force
Helicon Jet not to return data from the cache. Same on the server response -
no-cache, no-store and must-revalidate
instructions will force Helicon Jet not to put this response into cache. And
values of Cache-Control: max-age instructions in the response
will owerride Expiration timeout parameter for this response.
In fact this brings one more level of control over server-side caching by putting
a correct HTTP headers instructions in the server response, which is very useful
for dynamic content caching scenarios. And Helicon Jet built-in cache-control
features also can be used to alter cache settings by setting correct HTTP
headers. Please read HTTP
1.1 specification for more information on how to use Cache-Control HTTP