Bagaimana cara menampilkan semua URL dalam rantai pengalihan?

29

Saya mencari cara untuk menampilkan semua URL dalam rantai pengalihan, terutama dari shell. Saya telah menemukan cara untuk hampir melakukannya dengan curl, tetapi hanya menampilkan URL pertama dan terakhir. Saya ingin melihat mereka semua.

Pasti ada cara untuk melakukan ini secara sederhana, tetapi aku tidak bisa seumur hidup menemukan apa itu.

Sunting: Sejak mengirimkan ini, saya menemukan cara melakukannya dengan Chrome (CTRL + SHIFT + I-> tab Network). Tapi, saya masih ingin tahu bagaimana hal itu dapat dilakukan dari baris perintah Linux.

felwithe
sumber

Jawaban:

45

Bagaimana kalau hanya menggunakan 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 -vjuga menampilkan beberapa info, tetapi terlihat tidak berguna 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
yaegashi
sumber
Sepertinya itu akan melakukannya. Saya hanya ingin tahu, mengapa Anda mengirim STDERR ke STDOUT?
felwithe
2
Jika saya tidak salah, itu hanya akan berfungsi untuk pengalihan menggunakan header lokasi, bukan untuk 301 kode http
greg
1
Saya tidak dapat mereproduksi contoh wget. Pengembalian "503: Layanan Tidak Tersedia." - Mungkin mereka memblokir wget tetapi bukan http-user-agent curl? Apakah ini hanya aku?
StackzOfZtuff
Ketika saya memiliki pengalihan dari wwwke URL kanonik, sedikit kemudian saya mengalihkan dari HTTP ke HTTPS atau sebaliknya. Bagaimana saya bisa mengumpulkan larik semua arahan ulang per domain? Apakah itu inti dari sebuah pertanyaan?
Max Yudin