犬ターネット

wgetやcurlでgzip圧縮されたコンテンツを取得する

2013-08-08 wget php

httpリクエストを投げるときに以下のように Accept-Encoding:gzip,deflate ヘッダをつけてあげればだいたいOK(サーバ側が対応していればの話だけど)。

wget http://app-mgng.rhcloud.com/ --header="Accept-Encoding:gzip,deflate" -O mgng.html.gz
curl -H "Accept-Encoding:gzip,deflate" http://app-mgng.rhcloud.com/ > mgng.html.gz

これでgzip圧縮されたコンテンツが取得できるから転送量が抑えられる。試しに通常のやつとgzip圧縮したやつのサイズを比較してみる。

まず通常のやつ。2525byte。

$ curl http://app-mgng.rhcloud.com/ > mgng.html
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
101  2525    0  2525    0     0    454      0 --:--:--  0:00:05 --:--:--  8092

つぎにgzip圧縮したやつ。1258byte。サイズが約1/2になった。

$ curl -H "Accept-Encoding:gzip,deflate" http://app-mgng.rhcloud.com/ > mgng.html.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
104  1258  104  1258    0     0    225      0  0:00:05  0:00:05 --:--:--  3993

PHPだったら、以下みたいにしてヘッダをつけてあげればいい。

視界がおかしい
ダリー