title_parttitle_parttitle_part
静岡県浜松市であれこれソフトを開発している A.K.I Software のブログです。日々の開発日記やサーバー・セキュリティ関連の話題なども掲載。
<< 2024/04 >>123456789101112131415161718192021222324252627282930
《《《 ネットワーク機器の購入は Amazon で! 》》》
Powered by BLOM HTTP 1.1 の追加と帯域制限
小さくも大きくも閉じたりもしません
14/08/28 02:09 / pHTTPServer

ひとまずリリースしたので、HTTP 1.1 の機能を追加しています。

1)キャッシュコントロール関連

ETag とか Last-Modifed とか if-Modified-Since 辺りです。
0.01 はこの辺りをちゃんとしていないので、要求されたらそのままコンテンツを返していましたが、これでブラウザ側でキャッシュを利用したりすることが出来るようになり、トラフィック軽減に繋がります。

2)httpレジューム対応

accept-range とか Range とか 206 です。

IE とか Firefox などはダウンロード中に停止したり、ブラウザが落ちたりした場合、続きからダウンロードする機能がありますが、この辺りにも対応しました。
(ETag なんかは、IE でレジュームダウンロードするのに必要でしたので追加したようなもんです)

IE はレジュームするのに一定の条件が必要なのですが、条件通りにヘッダを出力すればちゃんとレジュームしてくれるのですが、なぜか Firefox だとレジューム後に再度ダウンロードしようとすると問答無用でコネクションを Close するわけわからん挙動をしてくれます。

Apache でテストすると、ちゃんとダウンロードを開始しますので、通信部分がおかしいのかと2日ほど悩んでいたのですが、あるヘッダを出力していると、なぜか Close するようです。バグなんじゃないかな、これ・・・
Apache との通信を Winshark で確認して比較したので気が付いたのですが、そうじゃなきゃ気がつかないですよ・・・

ただダウンロードを再開と入っても、レジュームしてくれない訳ですが、Firefox の制御はよくわからんです。

なんかヒントは無いかと、検索していたのですが、殆どが「サーバ側でレジュームに対応していないからです。」という回答が見受けられましたが、if-range も range も要求せずに最初からダウンロードしようとします。
IE のように Firefox でもなにかレジュームダウンロードをする条件があるのかもしれませんが、そういう資料を探す出すことができませんでしたので、Firefox でのレジュームに関してはスルーすることにします。

3)拡張子別帯域制限

photo


うちのサーバでは実際にこういう制限を入れていまして付けておきたい機能の一つでしたので実装しました。
ドメイン単位で設定ができます。

例えば、html は速度制限無しでダウンロードできるようにしたいが、zip に関しては 100KByte に制限したいという場合に使えます。

大きなファイルになりがちなデータ(動画データなど)はのんびりダウンロードして貰って、それ以外は素早くアクセスというコントロールに使えます。

4)内部のサーバコントローラを分離

表からは見えない部分ですが、将来的にサービス型にする際に制御しやすいように内部の http コントローラを分離しました。(内部処理の話なので、説明しようがありません・・・)

早い段階で HTTP 1.1 辺りのコアな機能の実装を終わらせておきたいので、暫くこんな感じで行きたいと思います。

[更新日付:2014/08/28 02:09:00]
トラックバックを見る(0)
Log Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+sl+4f1e3dc6db85844b6deed846c7119693cfe38ee6]
TB Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+tb+4f1e3dc6db85844b6deed846c7119693cfe38ee6]

記事へのコメント

コメントはありません

名前
コメントキー
 
コメントする時はキーを正確に入力して下さい
コメント
アドレスを含んだコメントはできません
© 2008-10 A.K.I Software all rights reserved.