- 929 名前:899 mailto:sage [2008/10/01(水) 13:00:32 ]
- >>927
もう一度調べてみたんですが、要求ヘッダに req.AutomaticDecompression = DecompressionMethods.GZip; とGZipをリクエストしておけばほとんどの鯖はGZipで圧縮されたデータを 送信してくれるようです。 では問題は何かと言いますと、初回以降の差分要求をするときにヘッダー に付けて送信する If-Range ヘッダーに記述する容量を、圧縮されたとき のものにしておく必要があるようなんです。 たとえば生では10バイトのDATをGZip圧縮して送信してもらったとします。 GZip圧縮をかけた結果5バイトに圧縮されたとします。 すると次回以降差分要求をするときに If-Range ヘッダーには10バイトでは なく5バイトと記述しておかないと正しく差分データが受信できないようなんです。 そうでないと鯖からエラーコード416が返されてしまうようです。 これは結構ゆゆしき問題なんです。 ローカルに保存したDATは当然GZip圧縮を解除した状態なので、GZip圧縮を かけたときのサイズを If-Range ヘッダーに記述するには、圧縮されたときの のデータサイズをDATファイルごとにどこかに記憶しておく必要があるんです。 管理が面倒になるうえにこの圧縮されたときのサイズのデータが吹き飛べば DATは最初から再取得しなければならなくなるんですね。 GZip圧縮は綺麗さっぱり忘れて無圧縮状態でデータを送信するようにした ほうがいいってことなんでしょうか? あるんです。
|

|