Eli Marmor wrote:
[..cut..]
In addition, the "entity" must be updated to contain more attributes of the request (args, POST args, cookies, etc.). And to find it fast, the key generated by cache_generate_key must be based on more things (such as args). Because sometimes a dynamic site may have thousands pages, all of them with the same URL but with different args.
The args are already used by cache_generate_key (see cache_storage.c lines 301 till 310, code from 2.0.53):
apr_status_t cache_generate_key_default( request_rec *r, apr_pool_t*p, char**key ) { if (r->hostname) { *key = apr_pstrcat(p, r->hostname, r->uri, "?", r->args, NULL); } else { *key = apr_pstrcat(p, r->uri, "?", r->args, NULL); } return APR_SUCCESS; }
Regards
RÃdiger