GZip-Kompression passt nicht

Gene

Grünschnabel
Guten Tag zusammen,

ich sitze hier an einem kleinen Problem, dass mich jetzt schon eine ganze Weile beschäftigt. Ich habe einen kleinen Webserver geschrieben, der nun um GZip-Kompression erweitert werden soll. Klappt soweit auch alles prima, bis auf die Tatsache, dass die Kompression an sich nicht passt. Dazu dieses Snippet:

Code:
/// <summary>
/// Compress data.
/// </summary>
/// <param name="toCompress">The data to compress</param>
/// <returns>The compressed data</returns>
public static byte[] Compress(byte[] toCompress) {
    MemoryStream write = new MemoryStream();
    GZipStream compressed = new GZipStream(write, CompressionMode.Compress);
    compressed.Write(toCompress, 0, toCompress.Length);
    return write.ToArray();
}

Ich schicke nun also den Inhalt meiner Webseite als UTF8-kodierte Bytes in die Funktion (Anzahl = toCompress.Lenght = 652 Bytes) und bekomme wunderbar 514, komprimierte Bytes zurück, die an den Client gehen.

Mein Problem nun ist, dass wenn die Browser die 514 Bytes dekomprimieren, dass dann ~1-4 Zeichen am Ende der Webseite fehlen. Wireshark zeigt mir an:

Content-encoded entity body (gzip): 514 bytes -> 646 bytes

Was 6 zu wenig sind. Ich frage mich nun, warum bei der Kompression Daten verloren gehen können. Kann das am Encoding liegen?

Gruß und Danke
Gene
 
Was einem beim Kuchen backen nicht so alles durch den Kopf geht ... mit

Code:
compressed.Close();

geht's problemlos. Leider hab' ich jetzt dafür kein Backpulver im Kuchen :(
 

Neue Beiträge

Zurück