Return-Path: owner-new-httpd Received: by taz.hyperreal.com (8.6.10/8.6.5) id KAA08811; Wed, 15 Mar 1995 10:45:48 -0800 Received: from life.ai.mit.edu by taz.hyperreal.com (8.6.10/8.6.5) with SMTP id KAA08801; Wed, 15 Mar 1995 10:45:46 -0800 Received: from volterra (volterra.ai.mit.edu) by life.ai.mit.edu (4.1/AI-4.10) for new-httpd@hyperreal.com id AA26215; Wed, 15 Mar 95 13:45:41 EST From: rst@ai.mit.edu (Robert S. Thau) Received: by volterra (4.1/AI-4.10) id AA03760; Wed, 15 Mar 95 13:45:38 EST Date: Wed, 15 Mar 95 13:45:38 EST Message-Id: <9503151845.AA03760@volterra> To: new-httpd@hyperreal.com Cc: new-httpd@hyperreal.com In-Reply-To: <9503151817.AA27494@ooo.lanl.gov> (message from Rob Hartill on Wed, 15 Mar 95 11:17:37 MST) Subject: Re: content negotiation Sender: owner-new-httpd@hyperreal.com Precedence: bulk Reply-To: new-httpd@hyperreal.com From: Rob Hartill Date: Wed, 15 Mar 95 11:17:37 MST Robert, would it be possible to extend your system to take other HTTP fields into account, e.g. Accept-language: and User-agent: ? One thing I'd considered was an extended map file format of the form: foo.mozhtml: { Content-type: text/html; level = 3; q = 0.9 User-agent: Mozilla Force-some-header: this-goes-to-clients-if-not-recognized-by-server } foo.html3: { Content-type: text/html; level = 3; q = 0.8 Force-some-header: this-goes-to-clients } foo.html: Content-type: text/html; level = 2; q = 0.5 where mismatches on User-agent, Language, or whatever would exclude a file from consideration, and arbitration among whatever was left would be broken by combined quality value, breaking ties among q*qs by order of Accept: line from the server. (The reason for this is to do something sensible with browsers which don't send *any* q values, but seem to list the MIME types they Accept: in rough priority order --- Mosaic 2.5 for one; you can easily override it by setting server quality ratings in the map file). NB I'm not sure whether the right thing for language is to handle it as a separate header in the extended format, or simply to have it as a lang= parameter in the mapped MIME types; the answer is presumably in the MIME RFCs. Roy, any thoughts? (In any case, it would be good for languages to be supported for MultiViews as well, as in the equivalent feature in the CERN server). Unresolved issues here are how to specify matches to the User-agent: header (initial substrings to match? Full regex's --- and using whose library if so? Something else?) NB, I could code this fairly quickly. I did the first pass of this stuff in a spurt that lasted from 10:00 AM to 10:00 PM --- twelve hours, counting the hour or I so spent at the Boston ICA viewing their exhibit of artists' reflections on the Holocaust. It is just NOT all that hard. However, one effect of all the "Go slow! Go slow!" talk has been to make me try to limit the scope of my own efforts, in the hopes of getting them into something that stands a chance of getting out. (FWIW, I just got mail from some guy in another department at MIT who I had not introduced to this list or to the project, who I have never met, and who I have never even *heard* of, saying how he'd been over to hyperreal, and how great apache-pre looks. I don't think it looks great. I don't think the process that gave rise to it is the way we should be building releases. I want it to serve its purpose and DIE. However, it's there and it more or less works; if we don't produce something better with all deliberate speed, there is the risk that it will take on a life of its own). rst