2016-06-23 3 views

答えて

0

一つは、ネットワークの使用状況のアイデアを持っているためにレスポンスヘッダを使用して誘惑されるだろう:

>>> response = requests.get('http://edition.cnn.com') 
>>> response.headers['Content-Length'] 
'28321' 

問題

これは、ネットワークの消費の観点から、正確ではありません!実際、content-lengthヘッダーフィールドは、HTTPヘッダーと完全なイーサネット/ IP/TCPヘッダーに関係なく、HTTPレスポンス本文のサイズを示します。

はWiresharkの上のすべての対応するパケットのサイズを加えた後、私は握手、HTTPリクエストを追加する場合13%にジャンプ私の場合、におけるTCPのACK(8%の変動を含むことなく、30784バイトで終わりますおよび接続の終了)。

いくつかの洞察

私のアドバイスは、(私はそれが間違っていることを意識すること、ポート80へのトラフィックによってここで定義)tcpdump HTTPトラフィックになり、そしていくつかの古き良きのpythonで出力を処理するために。

sudo tcpdump -n "dst port 80" -w cap.pcapを使用すると、すべてのトラフィックをポート80にダンプし、次に出力の処理方法についてthis SO questionを参照できます。

希望すると便利です。

+0

私はあなたの方法に従いましたが、私のリクエストヘッダーには "Content-Length"はありません。 – supersigdel

+0

@BibekSigdel "Content-Length"はリクエストヘッダには残念ながら存在しません... – 3kt

関連する問題