Como exibir todos os URLs em uma cadeia de redirecionamento?

29

Estou procurando uma maneira de mostrar todos os URLs em uma cadeia de redirecionamento, de preferência do shell. Eu encontrei uma maneira de quase fazer isso com curl, mas mostra apenas o primeiro e o último URL. Eu gostaria de ver todos eles.

Deve haver uma maneira de fazer isso de forma simples, mas pela vida toda não consigo encontrar o que é.

Editar: desde o envio, eu descobri como fazer isso com o Chrome (CTRL + SHIFT + I-> guia Rede). Mas ainda gostaria de saber como isso pode ser feito na linha de comando do Linux.

felwithe
fonte

Respostas:

45

Que tal simplesmente usar 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 -vtambém mostra algumas informações, mas não parece tão útil quanto 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
fonte
Parece que vai fazer isso. Só estou curioso, por que você enviou STDERR para STDOUT?
Feltro #
2
Se não me engano, ele só vai funcionar para redirecionamento usando o cabeçalho localização, não para 301 códigos http
greg
1
Não consigo reproduzir o exemplo do wget. Retorna "503: Serviço indisponível". - Talvez eles estejam bloqueando o wget, mas não o http-user-agent curl? Isso sou só eu?
StackzOfZtuff
Quando redireciono de wwwpara o URL canônico, um pouco mais tarde redireciono de HTTP para HTTPS ou de outra forma. Como posso coletar uma matriz de todos os redirecionamentos por domínio? Era o objetivo de uma pergunta?
Max Yudin 23/10