- From: Mark Nottingham <mnot@mnot.net>
- Date: Thu, 14 Jun 2001 13:39:11 -0700
- To: jones@research.att.com
- Cc: xml-dist-app@w3.org
I have always assumed that handlers can modify messages (including header and body modification/deletion, etc.) in any way they like, as long as their actions conform to the spec for that module. Otherwise, they're not very useful. re: trailers - I don't understand why they should be special; I'm for making them mutable as well. At this level, you have to trust that the right thing will be done - if you fundamentally don't trust intermediaries, you've got bigger problems than a restriction like "don't modify other headers" will solve (assuming the intent here is to promote some sort of trust model). Cheers, Mark Jones wrote: > There has been some discussion lately of issues regarding the > execution model, trailers, etc. I would like to point out another > area of the model which may need some more thinking. > > Every once in a while we use compression and encryption as examples of > things we might want an intermediary to do. As I have tried to > formulate these use cases, the model looks problematic to me. Let's > just try something really simple, like having intermediaries compress > and then decompress another part of the message. The most likely part > we might want to compress wwuld be some element inside the body block. > Let's also assume that the compression is kept in an XML-friendly > representation. For example, > > > <SOAP-ENV:Envelope > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> > <SOAP-ENV:Header> > <c:CompressElementInBody > xmlns:c="some-compression-ns-uri" > SOAP-ENV:actor="some-uri-matching-an-actor-that-can-do-compression" > href="#some-id"/> > </SOAP-ENV:Header> > <SOAP-ENV:Body> > <x:DoStuff xmlns:x="some-ns-uri"> > <x:BigData id="some-id"> > <!-- prodigious amounts of highly compressible data --> > ... > </x:BigData> > </x:DoStuff> > </SOAP-ENV:Body> > </SOAP-ENV:Envelope> > > > When processed by an appropriate "compression" actor, you might get, > > <SOAP-ENV:Envelope > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> > <SOAP-ENV:Header> > <c:DeCompressElementInBody > xmlns:c="some-compression-ns-uri" > SOAP-ENV:actor="some-uri-matching-an-actor-that-can-do-decompression/" > href="#some-id"/> > </SOAP-ENV:Header> > <SOAP-ENV:Body> > <x:DoStuff xmlns:x="some-ns-uri"> > <x:BigData id="some-id"> > <!-- the compressed data --> > ... > </x:BigData> > </x:DoStuff> > </SOAP-ENV:Body> > </SOAP-ENV:Envelope> > > > When processed again by an appropriate "decompression" actor, you might get: > > <SOAP-ENV:Envelope > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> > <SOAP-ENV:Header> > </SOAP-ENV:Header> > <SOAP-ENV:Body> > <x:DoStuff xmlns:x="some-ns-uri"> > <x:BigData id="some-id"> > <!-- prodigious amounts of highly compressible data --> > ... > </x:BigData> > </x:DoStuff> > </SOAP-ENV:Body> > </SOAP-ENV:Envelope> > > > Does SOAP allow this sort of behavior? > > Can a header rewrite other blocks (header or body entries) that are > targeted at other actors? > > The SOAP processing algorithm specifies that a header entry gets > removed as it is processed and that it can insert other header > entries, but can it remove, modify or insert other parts of the > message? > > We have been suggesting that trailers can be added, but perhaps not > deleted. Can a header modify or delete other headers that are not > targeted at the same node that processes it? > > Can the body be modified by an intermediary? > If not, how would the compression example be managed? > > --mark > > > Mark A. Jones > AT&T Labs - Research > Shannon Laboratory > Room A201 > 180 Park Ave. > Florham Park, NJ 07932-0971 > > email: jones@research.att.com > phone: (973) 360-8326 > fax: (973) 360-8970 > > > -- Mark Nottingham http://www.mnot.net/
Received on Thursday, 14 June 2001 16:39:20 UTC