curl でリダイレクト先のデータを取得する


$ curl -O
$ cat
<html><body>You are being <a href="">redirected</a>.</body></html>


$ curl -OL

と L をオプションに付けると,レスポンスがリダイレクトだった場合,リダイレクト先の情報を取得してくれる.

$ man curl | grep -A 8 '^ *\-L'
       -L, --location
              (HTTP/HTTPS) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response code), this option will make curl redo the request
              on  the  new  place.  If  used together with -i, --include or -I, --head, headers from all requested pages will be shown. When authentication is used, curl only sends its credentials to the initial
              host. If a redirect takes curl to a different host, it won't be able to intercept the user+password. See also --location-trusted on how to change this. You can limit the amount of redirects to fol‐
              low by using the --max-redirs option.

              When  curl  follows  a  redirect and the request is not a plain GET (for example POST or PUT), it will do the following request with a GET if the HTTP response was 301, 302, or 303. If the response
              code was any other 3xx code, curl will re-send the following request using the same unmodified method.

ステータスが 3xx だった場合にリクエストを送りなおしてくれるみたいですね.