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

Reply via email to