Как отобразить все URL в цепочке перенаправления?

29

Я ищу способ показать все URL-адреса в цепочке перенаправления, предпочтительно из оболочки. Я нашел способ почти сделать это с помощью curl, но он показывает только первый и последний URL. Я хотел бы увидеть их всех.

Должен быть способ сделать это просто, но я не могу на всю жизнь понять, что это такое.

Изменить: После отправки я узнал, как это сделать с Chrome (CTRL + SHIFT + I-> вкладка Сеть). Но я все еще хотел бы знать, как это можно сделать из командной строки Linux.

felwithe
источник

Ответы:

46

Как насчет простого использования 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
yaegashi
источник
Похоже, он это сделает. Мне просто любопытно, почему вы отправили STDERR в STDOUT?
felwithe
2
Если я не ошибаюсь, он будет работать только для перенаправления с использованием заголовка местоположения, а не для 301 http-кодов
greg
1
Я не могу воспроизвести пример wget. Возвращает «503: Сервис недоступен». - Может быть, они блокируют wget, а не curl http-user-agent? Это только у меня так?
StackzOfZtuff
Когда я перенаправляю с wwwканонического URL, чуть позже я перенаправляю с HTTP на HTTPS или другим способом. Как я могу собрать массив всех перенаправлений на домен? Это был вопрос?
Макс Юдин