This documents tests and provides a test harnes for patches given in
Messge-ID: <[EMAIL PROTECTED]>.

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
  [EMAIL PROTECTED]
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

([EMAIL PROTECTED])
Feel free to forward this message to any list for any purpose other than
email address distribution.

Reply via email to