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.

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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.