You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Eric Prud'hommeaux <er...@w3.org> on 2002/08/16 23:33:50 UTC
disk caching patches now tested
This documents tests and provides a test harnes for patches given in
Messge-ID: <20...@w3.org>.
Using my good buddies patchPanel and xterm, I tested the disk caching
with regards to observing the Vary header. The attached tarball is
intended to be expanded in the directory containing httpd-2.0/.
ALL EXCITED TO PLAY:
If all goes oddly well, you should be able to
make -f diskCache/Makefile
and go take a leak. When you come back, you should have three xterms
proxy server
manual server
manual client
Anything you type into manual client will go to proxy server and be
relayed to a newly running apache proxy server running on port 9003.
The proxy server will relay its requests on to whatever is specified
in the GET and HOST lines. The sample request sends the requests on
to the manual server where you will have to provide the response.
You can GET stuff from a real server, but this gives you a bit more
control.
SPECIFIC TESTS:
You enter a forest of xterms, each with a different title. The one
labeld "connected 3 9004" should have
connected 3 to 9004
in the top. Enter a '/' followed by the command
cat diskCache/proxyTest-request.http 1
This will send a request to the proxy server which will relay it to
the manual server. Now you have to play the role of manual server
so you go to that window, enter a '/' and give the command
cat diskCache/proxyTest-response.http 2
to give a response back to the proxy and client.
The proxy should create the file
diskCache/ProxyServerRoot/proxy/4o/0q/Jx/@_IyiXLoI94OuiXg.header
which holds the headers for the request and response.
You can mark where you are in each patchPanel with
/echo virgin cache
The proxy server should have seen
GET http://localhost:9005/doc1 HTTP/1.1
Host: localhost:9005
Header1: Value1
Header2: Value2
HTTP/1.1 200 OK
Date: Fri, 16 Aug 2002 21:12:14 GMT
Server: Apache/2.0.41-dev (Unix)
Content-Location: doc1.xhtml
Vary: Header1,Header2
Last-Modified: Mon, 05 Aug 2002 08:32:14 GMT
ETag: "4301b8-102-c6d39f80;fb6d5700"
Accept-Ranges: bytes
Cache-Control: max-age=600000
Expires: Fri, 16 Aug 2003 20:26:20 GMT
Content-Type: text/plain
Via: 1.1 127.0.0.1:9003
Content-Length: 14
line 1
line 2
Entering the same request in (quickly, before you lose your the proxy
server's attention) should result in the same reply, without touching
the manual server. Changing one of the vary fields:
GET http://localhost:9005/doc1 HTTP/1.1
Host: localhost:9005
Header1: Value1
Header2: Value2b
should result in the request going back to the manual server. Thus I
declare the vary support a success.
BORED NOW:
After you get tired of screwing around with this stuff
make -f diskCache/Makefile kill
will kill off the proxy server and you can
/quit
in each of the patchPanel windows.
TODO:
-There are a few code paths with conditional caching that I haven't
looked at.
-It would be cool to retrieve the Vary headers for foo (by the current
mechanism), compute a new hash from the request values of those
headers, and look for a cached variant matching that request. This
could be done only when the first cache fails the varies tests. Then
it would only create work when would have had to fail anyways.
-Add HTTP Extensions support to the cache validity calculation. I have
patches for this, but I'll wait 'till I've got fewer outstanding
patches (2 currently, typedefFuncs-20020816.patch and
diskCache-20020816.patch).
Despite these todos, I believe it is a good idea to integrate this
patches as disk caching doesn't really work now so they at least
improve the situation.
--
-eric
(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.
Re: disk caching patches now tested
Posted by Eric Prud'hommeaux <er...@w3.org>.
I have to screw at least one thing up per post.
Here are the promised attachments...
--
-eric
(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.
RE: disk caching patches now tested
Posted by Bill Stoddard <bi...@wstoddard.com>.
Eric,
If no beats me to it, I'll review and commit your patches later this
weekend.
Thanks.
Bill
> This documents tests and provides a test harnes for patches given in
> Messge-ID: <20...@w3.org>.
>
> Using my good buddies patchPanel and xterm, I tested the disk caching
> with regards to observing the Vary header. The attached tarball is
> intended to be expanded in the directory containing httpd-2.0/.
>
> ALL EXCITED TO PLAY:
> If all goes oddly well, you should be able to
> make -f diskCache/Makefile
> and go take a leak. When you come back, you should have three xterms
> proxy server
> manual server
> manual client
> Anything you type into manual client will go to proxy server and be
> relayed to a newly running apache proxy server running on port 9003.
> The proxy server will relay its requests on to whatever is specified
> in the GET and HOST lines. The sample request sends the requests on
> to the manual server where you will have to provide the response.
> You can GET stuff from a real server, but this gives you a bit more
> control.
>
> SPECIFIC TESTS:
> You enter a forest of xterms, each with a different title. The one
> labeld "connected 3 9004" should have
> connected 3 to 9004
> in the top. Enter a '/' followed by the command
> cat diskCache/proxyTest-request.http 1
> This will send a request to the proxy server which will relay it to
> the manual server. Now you have to play the role of manual server
> so you go to that window, enter a '/' and give the command
> cat diskCache/proxyTest-response.http 2
> to give a response back to the proxy and client.
>
> The proxy should create the file
> diskCache/ProxyServerRoot/proxy/4o/0q/Jx/@_IyiXLoI94OuiXg.header
> which holds the headers for the request and response.
>
> You can mark where you are in each patchPanel with
> /echo virgin cache
>
> The proxy server should have seen
>
> GET http://localhost:9005/doc1 HTTP/1.1
> Host: localhost:9005
> Header1: Value1
> Header2: Value2
>
> HTTP/1.1 200 OK
> Date: Fri, 16 Aug 2002 21:12:14 GMT
> Server: Apache/2.0.41-dev (Unix)
> Content-Location: doc1.xhtml
> Vary: Header1,Header2
> Last-Modified: Mon, 05 Aug 2002 08:32:14 GMT
> ETag: "4301b8-102-c6d39f80;fb6d5700"
> Accept-Ranges: bytes
> Cache-Control: max-age=600000
> Expires: Fri, 16 Aug 2003 20:26:20 GMT
> Content-Type: text/plain
> Via: 1.1 127.0.0.1:9003
> Content-Length: 14
>
> line 1
> line 2
>
> Entering the same request in (quickly, before you lose your the proxy
> server's attention) should result in the same reply, without touching
> the manual server. Changing one of the vary fields:
> GET http://localhost:9005/doc1 HTTP/1.1
> Host: localhost:9005
> Header1: Value1
> Header2: Value2b
>
> should result in the request going back to the manual server. Thus I
> declare the vary support a success.
>
> BORED NOW:
> After you get tired of screwing around with this stuff
> make -f diskCache/Makefile kill
> will kill off the proxy server and you can
> /quit
> in each of the patchPanel windows.
>
> TODO:
> -There are a few code paths with conditional caching that I haven't
> looked at.
>
> -It would be cool to retrieve the Vary headers for foo (by the current
> mechanism), compute a new hash from the request values of those
> headers, and look for a cached variant matching that request. This
> could be done only when the first cache fails the varies tests. Then
> it would only create work when would have had to fail anyways.
>
> -Add HTTP Extensions support to the cache validity calculation. I have
> patches for this, but I'll wait 'till I've got fewer outstanding
> patches (2 currently, typedefFuncs-20020816.patch and
> diskCache-20020816.patch).
>
> Despite these todos, I believe it is a good idea to integrate this
> patches as disk caching doesn't really work now so they at least
> improve the situation.
> --
> -eric
>
> (eric@w3.org)
> Feel free to forward this message to any list for any purpose other than
> email address distribution.
>