Received: (from majordom@localhost) by hyperreal.org (8.8.5/8.8.5) id UAA12468; Tue, 2 Sep 1997 20:27:53 -0700 (PDT) Received: from paris.ics.uci.edu (mmdf@paris.ics.uci.edu [128.195.1.50]) by hyperreal.org (8.8.5/8.8.5) with SMTP id UAA12425 for ; Tue, 2 Sep 1997 20:27:17 -0700 (PDT) Received: from kiwi.ics.uci.edu by paris.ics.uci.edu id aa18686; 2 Sep 97 20:24 PDT To: new-httpd@apache.org Subject: Re: [PATCH] ETags and Last-Modified, take 3 In-reply-to: Your message of "Fri, 29 Aug 1997 14:29:42 EDT." <97082914294237@decus.org> Date: Tue, 02 Sep 1997 20:19:05 -0700 From: "Roy T. Fielding" Message-ID: <9709022024.aa18686@paris.ics.uci.edu> Sender: new-httpd-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org Ummm, I may have forgotten to mention this, but conditional requests for anything other than GET or HEAD must be checked prior to invoking the method on the resource. There is no way for the server core to make that decision for any resource that is not handled by the server core, which is the main reason why they are passed unmolested to the actual handler and not enforced on the response from the handler. In other words, script output must not be subject to meets_conditions unless method == M_GET and status == 200. Otherwise, the server should just let the CGI handle it (or not). The server should never kill a CGI, not even for a HEAD -- just let it run (my preference) or send it SIGPIPE. I don't care how long the script may run -- if it is important, then they can bloody well fix the script. Also, an Etag must include a control stamp which is guaranteed to change when any part of the content of the response would change. That is definitely not the case for the suggested change to mod_include.c, so you'll have to remove that. Reorganizing the calls so that they are separate is still a good idea, since this will make it easier for non-core handlers to check conditions before performing an unsafe method. ....Roy