- From: Henrik Frystyk Nielsen <henrikn@microsoft.com>
- Date: Sun, 2 Jun 2002 11:54:30 -0700
- To: <noah_mendelsohn@us.ibm.com>, "Joshua Allen" <joshuaa@microsoft.com>
- Cc: "Mark Baker" <distobj@acm.org>, "Williams, Stuart" <skw@hplb.hpl.hp.com>, <xml-dist-app@w3.org>
Hi Noah, Lots of good questions - below I have tried to address some of them, hope this may at least explain part of where I am coming from. When creating a resource one has to make a choice between whether the initial representation of the resource is taken "asis" or whether it is interpreted. For example, if I PUT a makefile, do I expect it to be executed or not? Similarly, if I have a resource that can represent itself as a BMP and a JPEG and I do another PUT with a GIF, do I intend to override one of the existing representations or create a new representation? If it *is* going to be interpreted then who is it interpreted by? Presumably it is interpreted by a resource, but that resource has not yet been created. The choice HTTP made is that the immediate state of the resource created or updated upon doing a PUT request can at least in theory be received by a GET (possibly not though the same URI). It is possible to PUT a resource that is being updated dynamically when doing a GET on it (server side include is a classic example). This was one of the things the WebDav folks thought long and hard about [1] and their solution is to use multiple URIs: One for which there is a deterministic relationship between the representation provided in a GET and the internal representation of the resource; and potentially others for various other representations. That is, the problem of dealing with interpreted vs. editable representations is dealt with by providing metadata that links together URIs. This solution is in fact similar to how many Web servers use content negotiated resource: each identifiable representation is given its own URI: A French representation has its own URI which is different from its Spanish representation. Tim initially defined two HTTP methods called LINK and UNLINK that could be used to bind resource [2] linked from [3]. WebDAV augmented the mechanism by defining a set of properties; both are of course diving into the area of metadata. However, because of this choice in HTTP, a SOAP message included in a HTTP PUT request can not be expected to be executed as a function of the PUT although it may of course be executed in another context, for example if somebody does a GET on it. Henrik [1] http://ftp.ics.uci.edu/pub/ietf/webdav/protocol/rfc2518.html#rfc.section .5.4 [2] http://www.w3.org/Protocols/HTTP/Methods.html [3] http://www.w3.org/Protocols/HTTP/HTTP2.html >Still, representations is the only interpretation that seems >coherent to >me, and that implies the possibility of some processing to >establish the >state from the representation. That's very consistent with the first >quote above, and with the examples in this note. > >What am I missing? Many thanks. (BTW: these are exactly the >same points >Stuart has made, I think.)
Received on Sunday, 2 June 2002 14:55:51 UTC