Your compressed response should have HTTP headers

Content-Type: text/xml
Content-Encoding: gzip

Scott Nichol

Do not send e-mail directly to this e-mail address,
because it is filtered to accept only mail from
specific mail lists.
----- Original Message ----- 
From: "Nige White" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, November 15, 2004 1:22 PM
Subject: Re: Compressing SOAP requests


> Scott Nichol wrote:
> 
> >FYI, deflate follows Zlib as described in RFC 1950 
> >(http://www.ietf.org/rfc/rfc1950.txt?number=1950).  The Zlib DEFLATE method 
> >of compression is described in RFC 1951, while gzip is described in RFC 1952 
> >(http://www.ietf.org/rfc/rfc1952.txt?number=1952).  RFC 1952 looks like it 
> >specifies 10 bytes for the header, so I am not sure why 8 bytes works....
> >
> >  
> >
> Well, I've been battling with it.
> 
> Why 8 bytes works...
> 
> zlib already has a 2 byte flag prefix which the gzip compressed data 
> (after its 10 byte header) does not use, so it *looks* like it works 
> appending the 8 bytes.
> 
> Here's what I do:
> 
> When recieving gzip data:
> 
> Remove the first 10 bytes, they are the gzip-specific 10 byte header
> Remove the last 8 bytes, they consist of a CRC-32 checksum of the 
> original data, and original data length
> Prepend the zlib 2 byte flag: 0x78 0x9c
> Call zlib-inflate, and ignore error -5. THis is probably because the 
> buffer ends abruptly with no Adler checksum
> 
> When sending data as gzip:
> 
> Call zlib-deflate
> Remove the 2 zlib flag prefix bytes.
> Prepend the 10 byte gzip-specific header
> Append a CRC-32 checksum of the original data (Calculated in "DBL" which 
> has no unsigned arithmetic, and no bit-shift operators!)
> Append the original data length
> 
> This works in that I can compress data, and output it to a file which 
> gunzip will happily inflate to the original data.
> 
> I can also see (in my logfile) the correctly inflated SOAP packets 
> coming in to my DBL server.
> 
> There does seem to be a problem when SOAP receives by compressed packet. 
> It is throwing "Content is not allowed in prolog."
> 
> I still set the Content-Type header to "text/html". Should I change this 
> to indicate to SOAP that it is gzip data coming back?
> 
> I'll be back tomorrow, home time now.
> 
> Cheers,
> 
> Nigel
> 
> _____________________________________________________________________
> This message has been checked for all known viruses. Virus scanning
> powered by Messagelabs http://www.messagelabs.com For more information
> e-mail : [EMAIL PROTECTED]
> 
> 
>

Reply via email to