Comment afficher toutes les URL d'une chaîne de redirection?

29

Je cherche un moyen d'afficher toutes les URL dans une chaîne de redirection, de préférence à partir du shell. J'ai trouvé un moyen de le faire presque avec curl, mais il n'affiche que la première et la dernière URL. J'aimerais tous les voir.

Il doit y avoir un moyen de le faire simplement, mais je ne peux pas pour la vie de moi trouver ce que c'est.

Modifier: depuis que j'ai soumis cela, j'ai découvert comment le faire avec Chrome (onglet CTRL + MAJ + I-> Réseau). Mais, j'aimerais toujours savoir comment cela peut être fait à partir de la ligne de commande Linux.

Felwithe
la source

Réponses:

46

Que diriez-vous d'utiliser simplement 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 -vaffiche également quelques informations, mais ne semble pas aussi utile que 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
la source
On dirait que ça va le faire. Je suis juste curieux cependant, pourquoi avez-vous envoyé STDERR à STDOUT?
felwithe
2
Si je ne me trompe pas, cela ne fonctionnera que pour la redirection à l'aide de l'en-tête d'emplacement, pas pour les codes http 301
greg
1
Je ne peux pas reproduire l'exemple wget. Renvoie «503: service non disponible». - Peut-être bloquent-ils le wget mais pas le curl http-user-agent? Est-ce juste moi?
StackzOfZtuff
Lorsque j'ai une redirection de wwwvers l'URL canonique, un peu plus tard, j'ai une redirection de HTTP vers HTTPS ou autre. Comment puis-je collecter un tableau de toutes les redirections par domaine? Était-ce le point d'une question?
Max Yudin