- From: Roy T. Fielding <fielding@liege.ICS.UCI.EDU>
- Date: Tue, 04 Jun 1996 10:16:16 -0700
- To: Daniel DuBois <dan@spyglass.com>
- Cc: koen holtman <koenh@fatima.dds.nl>, http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
>>That is not true. Agent driven negotiation is indeed usable for >>error responses for the exact same reason that "click here to >>get the English version of this message" is usable in error responses. >>The second request in agent-driven negotiation is always a GET on >>a different resource. > > I'm still uncomfortable with this idea. I always perceived Vary: described > attributes of a resource at a URI, not somehting that described attributes > of a message that is returned from a request for that URI. Subtley > different, so here's what I mean: Well, Vary is not agent-driven negotiation, but that doesn't matter in this case since server-driven negotiation is also applicable. > I request > GET /foo HTTP/1.1 > Accept: text/dvi > Accept-Language: fr-CA > > Where the server has a 1) text/plain, fr-FR variant and a 2) text/html, en > varaint. > > Let's say the server is to busy to process the request and sends back a 503 > error. Let's also say the server is a smart server, and has error messages > in japanese and english. So it sends back(?): > HTTP/1.1 503 Busy > Vary: Accept-Language > > The error message in english. Okay. Note that it might also include a reference to the Japanese version as an HTML hyperlink, or a similar Alternates header (eventually) -- both qualify as agent-driven negotiation, although that would be unlikely for this particular error code unless the alternate location was some other server (imagine the possibilities -- the URI might be a URN, might point to a server that provides basic error translations in any language, etc.). > Do we not see a problem here? The intermediary provxy cache now thinks this > URI only varies by Accept-Language, when in fact it varies by > Accept-Language and Accept. No. First of all, the cache is fully capable of understanding that the 503 error is not the same as a 200 OK; URI's don't vary -- response representations do. Second, that particular response is not cachable (not that it would matter anyway). > If you think this example is contrivied, I'm sure there are others. Imagine > the same scenario with a None Acceptable message. The server-sife entity > chosen is obviosuly very dependent on the Accept-* haders, not just the > Accept-Language header that the error response varies on. A proxy could be > seriously mislead here. Like I said before, the protocol does not require the server to negotiate all responses -- it will only be used if it seems to be useful. ...Roy T. Fielding Department of Information & Computer Science (fielding@ics.uci.edu) University of California, Irvine, CA 92717-3425 fax:+1(714)824-4056 http://www.ics.uci.edu/~fielding/
Received on Tuesday, 4 June 1996 10:34:57 UTC