Re: can headers modify other parts of the message?

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