08/09/30 22:47:34
もう一つヘッダがらみの質問です
2chでは転送量を抑えるためGZipで圧縮をかけたデータのやりとりを推奨
しているようです。そこで以下のように(言語はC#です)GZipフラグをヘッダ
に付けてリクエストを出すようにしています。
webRequest.AutomaticDecompression = DecompressionMethods.GZip;
ただこの方法だと差分取得で問題が発生してしまいました。
webRequest.AddRange( fileSize );
の fileSize の部分にローカルにDLしたDATファイル(GZip圧縮は解除され
平文のテキストファイルです)のファイルサイズを調べて指定したのですが、
どうやらGZipフラグを付けると AddRange で指定すべきファイルサイズは
GZipで圧縮したときの容量ではないといけないようなんです。
ローカルのDATファイルのファイルサイズを指定すると416:RequestedRangeNotSatisfiable
が返されてそれ以降DATを取得できなくなってしまいます。
GZipで差分データをやりとりするときは、GZip圧縮をかけた状態で受け取った
DATのサイズを計測し、それを累積加算しながら AddRange でリクエストしない
とデータは取得できないのでしょうか?DATファイルひとつごとにGZipで受け取った
ときのサイズを累積加算してローカル側に記憶しておく必要があるうえに、
万が一その値を失った場合は最初からDATを取得しなければならない等
不便が予想されるわけですがみなさんはどうやって対処されていますか?