ますだっくすさんが
curlのエントリ書いてたのでおいらも1つだけ追記しませう。
実際の手順
基本的には、前述のますだっく(@masudak)さんの、「その3. レスポンスの出力を加工する」であるのですが、詳細な項目を設定することで問題の切り分けにも使用できます。
出力フォーマット用のファイル。
cat <<'EOF' >/tmp/curl_env.txt url_effective\t\t: %{url_effective}\n http_code\t\t: %{http_code}\n http_connect\t\t: %{http_connect}\n time_total\t\t: %{time_total}\n time_namelookup\t\t: %{time_namelookup}\n time_connect\t\t: %{time_connect}\n time_appconnect\t\t: %{time_appconnect}\n time_pretransfer\t\t: %{time_pretransfer}\n time_redirect\t\t: %{time_redirect}\n time_starttransfer\t\t: %{time_starttransfer}\n size_download\t\t: %{size_download}\n size_upload\t\t: %{size_upload}\n size_header\t\t: %{size_header}\n size_request\t\t: %{size_request}\n speed_download\t\t: %{speed_download}\n speed_upload\t\t: %{speed_upload} EOF
サイトアクセスと結果出力
$ curl -o /dev/null http://www.example.com -w @/tmp/curl_env.txt -s url_effective : http://www.example.com http_code : 200 http_connect : 000 time_total : 5.113 time_namelookup : 5.083 time_connect : 5.092 time_appconnect : 0.000 time_pretransfer : 0.000 time_redirect : 0.000 time_starttransfer : 5.102 size_download : 6435 size_upload : 0 size_header : 328 size_request : 177 speed_download : 1258.000
この場合
DNSのルックアップに時間がかかってるので、そこを改善しましょう、と言う話になります。
ほかにも、time_starttransferが大きければアプリケーションかな?などの切り分けに使えます。
各項目の意味
他にもこんな項目がありますよ。
manページから抜粋。
url_effective 最後にアクセスした URL 。特に curl に対し location: ヘッダに従うように指示した場合に有意になるものです。 http_code 直前の HTTP(S) あるいは FTP(s) 転送から取得された応答コード。 7.18.2 以降では同じ情報を示す response_code がエイリアスとして利用可能になりました。 http_connect curl による CONNECT リクエストに対する(プロクシからの)最後の応答コード。(7.12.4 以降) time_total 全体の処理にかかった時間(秒)。表示精度はミリ秒単位。 time_namelookup 開始から名前解決が完了したときまでの時間(秒)。 time_connect 開始からリモートのホスト(またはプロクシ)への TCP 接続完了までの時間(秒) time_appconnect 開始からリモートホストへの SSL/SSH/etc 接続/ハンドシェイク完了までの時間(秒)(7.19.0 以降) time_pretransfer 開始から最初のバイトの転送が行われようとするまでの時間(秒)。転送前になされるべきコマンドやプロトコル特有のネゴシエーションも含まれる。 time_redirect 正引き(名前解決), 接続, 前段転送処理, 最終的なトランザクションが開始される前の転送を含む、すべてのリダイレクションの段階に要した時間(秒)を表す。この変数は一連のリダイレクション全体に要した時間を表す。(7.12.3 以降) time_starttransfer 開始から最初のバイトが転送されるまでの時間(秒)。 time_pretransfer に加えてサーバが結果を算出するのに要した時間も含まれる。 size_download ダウンロードされた総バイト数。 size_upload アップロードされた総バイト数。 size_header ダウンロードされたヘッダの総バイト数。 size_request 送信された HTTP リクエストの総バイト数。 speed_download curl により測定されたダウンロード完了までの平均ダウンロード速度。バイト数/秒。 speed_upload curl により測定されたアップロード完了までの平均アップロード速度。バイト数/秒。 content_type (存在するなら)リクエストした文書の内容型。 num_connects 直前の転送による新規接続数。(7.12.3 以降) num_redirects リクエストに応じて行われたリダイレクトの回数。(7.12.3 以降) redirect_url リダイレクト追跡の -L を用いずにHTTP リクエストを生成した場合、実際のリダイレクト先になるものとされる URL がこの変数に示される。 (7.18.2 以降) ftp_entry_path リモート FTP サーバにログインしたときに libcurl により最初に辿り着いたパス。(7.15.4 以降) ssl_verify_result リクエストされた SSL ピア証明書の検証結果。 0 は検証の成功を意味する。(7.19.0 以降)
いじょー。
curl高機能すぎて書き始めると色々大変になってきますw
manなど色々見ながら使ってみてくださいませね。
- 出版社/メーカー: 明治
- メディア: 食品&飲料
- 購入: 1人 クリック: 48回
- この商品を含むブログ (5件) を見る