如何显示重定向链中的所有URL?


29

我正在寻找一种显示重定向链中所有URL的方法,最好是从Shell中显示。我找到了一种几乎可以使用curl进行处理的方法,但是它仅显示第一个和最后一个URL。我想看全部。

必须有一种简单的方法来执行此操作,但是我一生无法找到它的含义。

编辑:自提交此文件以来,我已经找到了如何使用Chrome进行操作(CTRL + SHIFT + I->“网络”标签)。但是,我仍然想知道如何从Linux命令行完成它。

Answers:


45

简单使用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

看起来会做到的。我只是很好奇,为什么将STDERR发送到STDOUT?
felwithe

2
如果我没记错的话,它仅适用于使用位置标头进行重定向,而不适用于301 HTTP代码
greg

1
我无法重现wget示例。返回“ 503:服务不可用”。-也许他们阻止了wget,但没有阻止curl http-user-agent?这就是我吗
StackzOfZtuff

当我从重定向www到规范URL时,过了一会儿我又从HTTP重定向到HTTPS或其他方式。如何收集每个域的所有重定向数组?这是问题的重点吗?
Max Yudin
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.