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.