リダイレクトチェーン内のすべてのURLを表示するにはどうすればよいですか?


29

できればシェルからのリダイレクトチェーンですべてのURLを表示する方法を探しています。curlでほぼ行う方法を見つけましたが、最初と最後のURLのみが表示されます。それらすべてを見たいです。

これを簡単に行う方法がなければなりませんが、私は人生でそれが何であるかを見つけることはできません。

編集:これを送信してから、Chromeでそれを行う方法を見つけました(CTRL + SHIFT + I-> [ネットワーク]タブ)。しかし、Linuxコマンドラインからどのように実行できるかを知りたいです。

回答:


45

単純に使用してみてはwgetいかがですか?

$ wget http://picasaweb.google.com 2>&1 | grep Location:
Location: /home [following]
Location: https://www.google.com/accounts/ServiceLogin?hl=en_US&continue=https%3A%2F%2Fpicasaweb.google.com%2Flh%2Flogin%3Fcontinue%3Dhttps%253A%252F%252Fpicasaweb.google.com%252Fhome&service=lh2&ltmpl=gp&passive=true [following]
Location: https://accounts.google.com/ServiceLogin?hl=en_US&continue=https%3A%2F%2Fpicasaweb.google.com%2Flh%2Flogin%3Fcontinue%3Dhttps%3A%2F%2Fpicasaweb.google.com%2Fhome&service=lh2&ltmpl=gp&passive=true [following]

curl -v情報も表示されますが、ほど有用ではありませんwget

$ curl -v -L http://picasaweb.google.com 2>&1 | egrep "^> (Host:|GET)"
> GET / HTTP/1.1
> Host: picasaweb.google.com
> GET /home HTTP/1.1
> Host: picasaweb.google.com
> GET /accounts/ServiceLogin?hl=en_US&continue=https%3A%2F%2Fpicasaweb.google.com%2Flh%2Flogin%3Fcontinue%3Dhttps%253A%252F%252Fpicasaweb.google.com%252Fhome&service=lh2&ltmpl=gp&passive=true HTTP/1.1
> Host: www.google.com
> GET /ServiceLogin?hl=en_US&continue=https%3A%2F%2Fpicasaweb.google.com%2Flh%2Flogin%3Fcontinue%3Dhttps%253A%252F%252Fpicasaweb.google.com%252Fhome&service=lh2&ltmpl=gp&passive=true HTTP/1.1
> Host: accounts.google.com

それはそれを行うように見えます。ただ興味がありますが、なぜSTDERRをSTDOUTに送ったのですか?
felwithe

2
私は間違っていない場合は、それだけで301のHTTPコードのためではない、場所ヘッダーを使用したリダイレクトのために動作します
グレッグ

1
wgetの例を再現できません。「503:Service Unavailable」を返します。-たぶん彼らはwgetをブロックしていますが、curl http-user-agentはブロックしていませんか?これは私だけですか?
StackzOfZtuff

からwww標準URLへのリダイレクトがある場合、少し後にHTTPからHTTPSまたはそれ以外へのリダイレクトがあります。ドメインごとにすべてのリダイレクトの配列を収集するにはどうすればよいですか?それが質問のポイントでしたか?
マックスユディン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.