リダイレクト先をいきなり追わない ― curlでLocationの連鎖を見る

ネットワーク・RFCカテゴリを表すパンダのイラスト ネットワーク・RFC

この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。curl公式マニュアルとHTTP仕様を確認し、redirectの入口をheaderから観察し、SSOや短縮URL、リンク障害の一次切り分けへつなげる形に整理しています。

検証ステータス:📘 curl・HTTP公式仕様確認済み・外部通信未検証

URLが別URLへ飛ぶとき、最初から-Lで全部追うより、まずstatusとLocationを見ると何が起きているか分かります。特にSSO、短縮URL、HTTP→HTTPS、CDNや公開URL変更では、「どこへ飛ばされたか」を見える化するだけで調査がかなり進みます。

今回の成功条件

最初のレスポンスに含まれる3xxLocation:を確認し、-Lを付けたときにcurlがその行き先を追うことを観察できれば成功です。

まず試す

curl -sS -D - -o /dev/null https://httpbin.org/redirect/1

ここを見る

3xx statusとLocation:が出れば、そのレスポンス自身が次の行き先を指示しています。

見るポイントは3つです。

  • status codeは何か

  • Location:は相対URLか絶対URLか

  • host名が変わっていないか

「リンクを開くと別画面になる」という現象を、ブラウザの見た目ではなくHTTPの応答として確認できます。

1か所変えてみる

curl -sS -L -D - -o /dev/null https://httpbin.org/redirect/1

-Lを付けるとcurlがLocationを追います。headerが複数段表示される場合、途中のstatusも観察します。

次にredirect回数を変えます。

curl -sS -L -D - -o /dev/null https://httpbin.org/redirect/3

1段と3段でheaderのまとまりが増えることを確認すると、「最終URLだけを見る」のと「途中経路を見る」の違いが分かります。

なぜそうなる

HTTP redirectは、サーバーが3xx statusとLocationを返し、clientが次のrequestを判断する仕組みです。

ここで重要なのは、redirectは単なるURL置換ではないことです。301/302/303/307/308では、clientが次のrequestでmethodをどう扱うかが同じではありません。GETだけを見ていると気付きにくい差ですが、フォーム送信やAPIのPOSTでは重要です。

また、redirect先でhostが変わる場合は、認証情報やCookie、proxy、証明書、ネットワーク制御など別の条件が関係することがあります。

graph LR
A[元URL] -->|3xx + Location| B[次のURL]
B -->|3xx + Location| C[さらに次のURL]
C -->|200など| D[最終応答]

失敗・境界条件も見る

redirectがある前提で調査しないことも大切です。

curl -sS -D - -o /dev/null https://example.com/

Location:がなければ、それ自体が結果です。さらに、DNS失敗、TLSエラー、proxy拒否などでは3xx以前で止まるため、redirectだけを疑っても解決しません。

-Lを最初から付けると最終結果だけに意識が向きやすく、途中の異常な転送先や余計なredirectを見落としやすくなります。

事務職・業務でどこに使えるか

1. 社内ポータルのリンク確認

「昔のURLをクリックすると新しいサイトへ飛ぶ」という場合、元URLがどこへ転送しているかを確認できます。部内手順書やExcelに残った古いリンクを整理するとき、単に開けるかどうかだけでなく、正式な新URLを特定する材料になります。

2. SSOの問い合わせ一次切り分け

「ログイン画面を行ったり来たりする」「認証後に元画面へ戻らない」という問い合わせでは、redirect chainが長くなっていないか、想定外hostへ移っていないかを見る入口になります。

ただし認証Cookieやtokenを含む実リクエストを安易に共有しないでください。まずは公開URLや認証前の入口で確認します。

3. メールや資料中の短縮URL確認

短縮URLをそのままブラウザで開く前に、Locationだけ確認すると最初の転送先を把握できます。これは安全性を保証するものではありませんが、「どこへ向かおうとしているか」を確認する一次チェックになります。

4. Web担当への問い合わせ材料

「開けません」だけでなく、

  • 最初のURL

  • 最初のstatus

  • Location

  • redirect回数

  • 最終status

を整理すると、Web担当やベンダーへ具体的に伝えやすくなります。

仕事で使うなら

SSO、短縮URL、HTTP→HTTPS、CDN切替、古い社内リンクの調査で有効です。認証headerやCookie付きのrequestを未知のredirect先へ無条件に送らないよう、行き先を先に確認します。

業務手順としては、最初は-Lなしで入口を見る → 必要なら-Lで連鎖を見る → hostが変わる地点を確認するの順が安全です。

curl manual: https://curl.se/docs/manpage.html

RFC 9110: https://www.rfc-editor.org/rfc/rfc9110

文書情報

記事タイトル
リダイレクト先をいきなり追わない ― curlでLocationの連鎖を見る
作成日
更新日
Source URL
https://papanda925.com/?p=15443

ライセンス: 本記事のうち、当サイトが権利を有する本文・自作図表は、特記なき限り CC BY 4.0 で利用できます。生成AIを活用して作成・編集した内容を含みます。コードについて、別途ライセンス表示またはリンク先GitHubリポジトリのライセンスがある場合は、その条件を優先します。引用・第三者資料・画像・商標等は本ライセンスの対象外です。 利用ポリシー

タイトルとURLをコピーしました