Web Application Performance: Difference between revisions
Jump to navigation
Jump to search
Line 23: | Line 23: | ||
* Gets around caching, effectively forces a new request by using a unique filename based on file contents | * Gets around caching, effectively forces a new request by using a unique filename based on file contents | ||
* Effectively allows you to set long expiry times but still force updates, e.g. 12 months for site logo | * Effectively allows you to set long expiry times but still force updates, e.g. 12 months for site logo | ||
=== Proxies / intermediates === | |||
* Difficult now that everything is HTTPS |
Revision as of 15:09, 11 July 2023
Cache
HTTP headers
- Cache-Control: max-age
- ETag: Hash of file, don't download if unchanged (but beware of how this is calculated, e.g. Apache may use inodes by default which differ on load-balanced servers)
- Expires: Re-download after this
- Last-Modified
Most headers won't help on first visit.
Request headers (conditional GET request):
- If-Modified-Since: Date/time
- If-None-Match: Hash (ETag)
Problems:
- Can't override the browser behaviour - once it's cached with an expiry time
Fingerprinting / hashing
- Gets around caching, effectively forces a new request by using a unique filename based on file contents
- Effectively allows you to set long expiry times but still force updates, e.g. 12 months for site logo
Proxies / intermediates
- Difficult now that everything is HTTPS