curlでリダイレクトの遷移を追う方法

提供: Linux入門
2017年6月13日 (火) 21:52時点におけるDaemon (トーク | 投稿記録)による版 (ページの作成:「'''curl''' とは、サーバからデータを転送するためのツールです。http サーバなどからデータ取得に利用されます。 '''読み方''' ;...」)

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
スポンサーリンク

curl とは、サーバからデータを転送するためのツールです。http サーバなどからデータ取得に利用されます。

読み方

curl
しーゆーあーるえる

概要

ウェブでは、リダイレクトと呼ばれる機能がよく使われます。 あるURLにアクセスすると、違うURLに遷移させる、といったときに使われます。 マルウェアなどのプログラムをダウンロードさせるために、多段階になったリダレイクとといったものもあるでしょう。

ここでは、リダイレクトの遷移を追いかける方法を紹介します。

例えば、A にアクセスすると、最終的に C のページが表示されるときに、その過程では、以下のようなアクセスをブラウザなどのツールで行われてるとします。

  1. A にアクセスすると B へリダイレクト
  2. B にアクセスすると C へリダイレクト
  3. C のページがロードされる

このときに、どのようなページ遷移(URLの遷移)をするのか、といったことを調べたいときに、 curl コマンドと grep コマンドを組み合わせることで、遷移を調べることができます。

使い方

curl -I -L "任意のURL" | grep ^Location:

デフォルトでは、 curl はリダイレクトを追跡しません。 -L オプションを使うことで、 Location ヘッダを追跡してくれます。

実行例

これは、http://yahoo.jp にアクセスすると http://www.yahoo.co.jp にリダイレクトされ、 http://www.yahoo.co.jp/ から https://www.yahoo.co.jp:443/ にリダイレクトされるときの例です。

$ curl -s -I -L http://yahoo.jp/ | grep ^Location
Location: http://www.yahoo.co.jp
Location: https://www.yahoo.co.jp:443/

このように、途中でどこにリダイレクトされたのか、知ることができます。

関連項目




スポンサーリンク