質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.23%

HTTP Chunked transfer encodingの各チャンクサイズの決定方法は?

解決済

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 5,741

sounisi5011

score 715

HTTP Chunked transfer encodingの各チャンクサイズは、どのように決定されるのでしょうか?
各サイトの例示を見る限り、チャンクサイズに上限は無く、適当に決めても問題ないようですが…
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

参考URL: Content-Length header V.S. chunked encoding

【静的なコンテンツ】
【動的に生成されるサイズの小さなコンテンツ】

Content-Length: xxx の計算が容易なため、(TCPレベルで見たときの)通信が1回で済むこちらを使うべきでしょう。 Transfer-Encoding: Chunked の出る幕はありません。

【動的に生成されるサイズの大きなコンテンツ】
【無限に流れるストリーミングコンテンツ】

サイズが大きい場合、全ての生成が終わるまで待っていては効率が悪いです。また、無限なストリーミングでは永遠に終わらないため、逐次 Transfer-Encoding: Chunked で返していくしかありません。

例えばTwitterのストリーミングAPIは、(無圧縮の場合は) 1チャンクあたり1イベント/1ツイート/1リスト というキリのいい分割が為されています。意味のまとまり に着目する場合はこのように特に迷うことは何も無いでしょう。

問題となる例は、ニコ生配信などのケースですよね。こういうメディアデータなどは一概にどこかで分割出来る訳でもなく、サーバ側・クライアント側・通信回線のあらゆる要素に影響されてくると思います。これに関しては自分もまだ勉強中の身なので、直球の回答をすることは出来ません、すいません…

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2014/12/04 09:23

    最近だと Server-Sent Events も「無限に流れるストリーミング」なので Chunked だったと思います

    キャンセル

  • 2014/12/04 17:54

    何となく、Content-LengthよりもHTTP Chunked transfer encodingのほうが最適と思い込んでいましたが、実際は特殊な用途で利用するべき仕様なのですね。
    携帯電話でも非対応の環境が存在することを考えると、利用するべきではないかもしれません。

    http://tilfin.hatenablog.com/entry/20080723/1216791007

    ありがとうございます、また新しい知識を得ることが出来ました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.23%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る