質問: HTTP通信の通信量をバイトで算出しようと思うのですが XMLデータをPOSTやGETで受信した場合の通信量としては ChromeのデベロッパーツールツールなどでいうとNetworkタブの Responseタブに以下のように通知された場合 ``` aaa http://www.aaa.co.jp/ bbb http://www.bbb.co.jp/info/ ``` などで実行すると 文字数/バイト数(スペース無視): 140 となるので、140バイトと考えてよいのでしょうか?
回答: 文字コードという概念があります。挙げられたサイトでいえば「カウント方法」という選択肢です。文字コードにはいろいろなものがあり、例えばUTF-16では1文字を2バイトで構成するため140文字であれば280バイトとなります。このように文字コードが分からなければ根本的な部分でバイト数を確定できません。 「スペース無視」の部分はどうお考えなのでしょうか? スペースとて通信されていることに変わりはありませんから通信量には含まれるはずです。 HTTP通信では`Transfer-Encoding`が存在します。中でも`chunked`は割とよく使われています。チャンク化の符号化 例を見るとわかりますが、実際のデータ以外にチャンクの長さ情報も送信されますので、その分も通信量に含まれると考えられます。 HTTP通信では単にResponseが返されるだけでなく、Responseヘッダーも含まれます。ヘッダーの内容はChromeのデベロッパーツールなどでも確認できますが、割と大量に指定されているため、通信量はかなり大きくなります。 HTTP通信がHTTPSが一般化しています。つまりTLS暗号化が行われている場合があります。この場合は送信されるデータ毎(例えばチャンク毎)にTLSのヘッダーが付与されます。 HTTP通信はもちろんTCP/IPを使用しています。つまり送信されるデータ毎(例えばチャンク毎)にTCPヘッダーおよびIPヘッダーが付与されています。 HTTP通信が前提にしているTCP/IPはイーサネットにのせられます。イーサネットフレームまでカウントするべきかはよくわかりません。 以上を踏まえて、質問者さんはどこからどこまでをカウントするか**通信量のかんがえかた**を決めてください。