45323


HTTP通信の通信量をバイトで算出しようと思うのですが  
XMLデータをPOSTやGETで受信した場合の通信量としては  
ChromeのデベロッパーツールツールなどでいうとNetworkタブの  
Responseタブに以下のように通知された場合

[code]

    <data>
      <test>
        <name>aaa</name>
        <url>http://www.aaa.co.jp/</url>
      </test>
      <test>
        <name>bbb</name>
        <url>http://www.bbb.co.jp/info/</url>
      </test>
    </data>
    
[/code]

<https://tool-taro.com/string_count/>  
などで実行すると  
文字数/バイト数(スペース無視): 140  
となるので、１４０バイトと考えてよいのでしょうか？


CC BY-SA 4.0
2018-07-04T16:13:59.447
45314
2018-07-05T00:57:23.927
12842
question
http
通信量のかんがえかた


[文字コード](https://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97%E3%82%B3%E3%83%BC%E3%83%89)という概念があります。挙げられたサイトでいえば「カウント方法」という選択肢です。文字コードにはいろいろなものがあり、例えばUTF-16では１文字を２バイトで構成するため140文字であれば280バイトとなります。このように文字コードが分からなければ根本的な部分でバイト数を確定できません。

「スペース無視」の部分はどうお考えなのでしょうか？ スペースとて通信されていることに変わりはありませんから通信量には含まれるはずです。

HTTP通信では[`Transfer-
Encoding`](https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Transfer-
Encoding)が存在します。中でも`chunked`は割とよく使われています。チャンク化の符号化
例を見るとわかりますが、実際のデータ以外にチャンクの長さ情報も送信されますので、その分も通信量に含まれると考えられます。

HTTP通信では単にResponseが返されるだけでなく、Responseヘッダーも含まれます。ヘッダーの内容はChromeのデベロッパーツールなどでも確認できますが、割と大量に指定されているため、通信量はかなり大きくなります。

HTTP通信がHTTPSが一般化しています。つまりTLS暗号化が行われている場合があります。この場合は送信されるデータ毎（例えばチャンク毎）にTLSのヘッダーが付与されます。

HTTP通信はもちろんTCP/IPを使用しています。つまり送信されるデータ毎（例えばチャンク毎）にTCPヘッダーおよびIPヘッダーが付与されています。

HTTP通信が前提にしているTCP/IPは[イーサネット](https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%BC%E3%82%B5%E3%83%8D%E3%83%83%E3%83%88)にのせられます。イーサネットフレームまでカウントするべきかはよくわかりません。

以上を踏まえて、質問者さんはどこからどこまでをカウントするか **通信量のかんがえかた** を決めてください。


CC BY-SA 4.0
2018-07-04T19:49:51.487
45319
2018-07-04T19:49:51.487
4236
45314
answer


> HTTP通信の通信量をバイトで算出

**HTTP通信** ということであれば、 chrome developer toolを開き、`Network`タブの`Size`列を見るとわかります。

`Size`列の1つ目の値(色の濃い数値)が **レスポンスサイズ**
(HTTPのレスポンスヘッダとコンテンツサイズを併せたもの)で、2つ目の値(色の薄い数値)が **コンテンツサイズ** (コンテンツのサイズ)になります。

[![chrome developer
tool](https://i.stack.imgur.com/Ec64D.png)](https://i.stack.imgur.com/Ec64D.png)

> XMLデータをPOSTやGETで受信した場合の通信量

XMLデータの通信量であれば、レスポンスサイズ(`Size`列の1つ目の値)を見れば良いと思います。

また、HTTPではデータをgzip圧縮して通信することが多いため、`レスポンスサイズ <
コンテンツサイズ`ことがあります。(画像内の`bundle.js`など)

[参考: In Chrome Network Tab, under the size column, what do the 2 numbers
represent?](https://stackoverflow.com/questions/40851400/in-chrome-network-
tab-under-the-size-column-what-do-the-2-numbers-represent)


CC BY-SA 4.0
2018-07-05T00:57:23.927
45323
2018-07-05T00:57:23.927
45314
answer