What if "Vary" were much more than just HTTP Vary? It would be nice if the framework could support the "external" vary (ie, "normal" HTTP Vary) as well as any internal Vary.
To use general mod_disk_cache structure, we currently have something sorta like this for vary metafiles: int cache_version apr_time_t expires serialized array of vary headers (ex: accept-encoding, user-agent) What if we had a serialized table instead: HTTP_VARY => accept-encoding, user-agent MY_AUTH_VARY => my_auth_cookie Where HTTP_VARY was handled by the "HTTP vary" provider and created a vary key based on users info, and MY_AUTH_VARY was some provider a user wrote so they could cache different content based on if a user was authenticated or not (based on a cookie). So a complete key from a request for this may be: HTTP_VARYaccept-encoding=gzipuser-agent=MozillaMY_AUTH_VARYauth=1http://doma in.com/some/url?some=query&string=1 There are cases when may want to vary based on geographical info, time of day, etc., but "normal HTTP Vary" does not really handle that. However, it would not be so hard to break the whol vary process into providers. -- Brian Akins Chief Operations Engineer Turner Digital Media Technologies