On Tue, 2 May 2006 17:22:00 +0200 (SAST)
"Graham Leggett" <minfrin@sharp.fm> wrote:
> On Tue, May 2, 2006 7:06 pm, Davi Arnaut said:
>
> > There is not such scenario. I will simulate a request using the disk_cache
> > format:
>
> The way HTTP caching works is a lot more complex than in your example, you
> haven't taken into account conditional HTTP requests.
I've taken into account the actual mod_disk_cache code! Let me try to translate
your typical scenario.
> A typical conditional scenario goes like this:
>
> - Browser asks for URL from httpd.
Same.
> - Mod_cache has a cached copy by looking up the headers BUT - it's stale.
> mod_cache converts the browser's original request to a conditional request
> by adding the header If-None-Match.
sed s/mod_cache/mod_http_cache
> - The backend server answers "no worries, what you have is still fresh" by
> sending a "304 Not Modified".
sed s/mod_cache/mod_http_cache
> - mod_cache takes the headers from the 304, and replaces the headers on
> the cached entry, in the process making the entry "fresh" again.
sed s/mod_cache/mod_http_cache
> - mod_cache hands the cached data back to the browser.
sed s/mod_cache/mod_http_cache
> Read http://www.ietf.org/rfc/rfc2616.txt section 13 (mainly) to see in
> detail how this works.
Again: we do not want to change the semantics, we only want to separate
the HTTP specific part from the storage specific part. The HTTP specific
parts of mod_disk_cache, mod_mem_cache and mod_cache are moved to a
mod_http_cache, while retaining the storage specific parts. And mod_cache
is the one who will combine those two layers.
Again: it's the same thing as we were replacing all mod_disk_cache file
operations by hash table operations.
--
Davi Arnaut
|