リンクの有効期限は、条件が満たされると自動的に短縮リンクを無効にするルールです。URLが永久に生きるのではなく、あなたが選んだ瞬間に機能を停止します。自己破壊リンクは同じアイデアを1回限りに調整したものです:最初のクリック後に無効になります。どちらも意図的なものです。壊れたリンクを修正しているのではなく、停止するように設計されたリンクを作成しているのです。
その意図こそが保持する価値のある区別です。転送先が消えて壊れたリンクは腐敗しており、腐敗は検出して修復する問題です。その運用プレイブックはリンク腐敗防止戦略に書きました。有効期限は逆の動きです:リンクを暗くするのは自分で決め、日付・N回のクリック後・または1回だけという形で行います。この記事では、各モードがいつ適合するか、期限切れリンクがアクセスされたときにエッジが実際に返すもの、有効期限がパスワードゲートや地域ルールとどのように組み合わさるか、1回限りのリンクを強固なセキュリティ境界として扱う場合のタイミングの注意点を説明します。
いつ使うべきか?プロモウィンドウ終了後も転換し続けるべきではない期間限定オファー。共有文書やデータエクスポートへの時間制限付きアクセス。認証情報や機密ファイルの1回限りリンク。アクセスを許可するリンクがその理由より長く生き続けるべきでないコンプライアンスのデータ最小化。翌日には無効になるべきイベントリンク(ポスター上の古いQRコードが昨年のスケジュールに人々を送らないように)。
リンク有効期限の3つのモード#
有効期限には3つの形があり、適切なものを選ぶことがほとんどの決断です。
1つ目は日時によるものです。有効期限のタイムスタンプをタイムゾーン付きで設定し、リンクはその時刻まで通常通り解決され、その後停止します。これがほとんどの人が意味する有効期限付きURL:真夜中に終わるキャンペーンの一時リンク、スプリント終了時に閉じるべき文書共有、1週間だけ公開したいウェビナーの録画の期間限定リンク。
2つ目はクリック数によるものです。リンクは最初のNリクエストに対して機能し、その後期限切れになります。Nを100に設定すると101番目の訪問者が期限切れレスポンスを受け取ります。これは上限付きのプレゼント、固定席数のベータ招待、または制限が「いつか」ではなく「何人が使ったか」である場合に役立ちます。
3つ目は1回限り使用で、クリック数をNに設定したもので1に設定したものです。これが自己破壊リンクです。一度開かれると、それ以降のすべてのクリックでは無効になります。転送されたコピーは使えず、URLのスクリーンショットも使えず、ログに漏れたリンクも、意図した受信者が先に開いていれば使い済みです。
モードは原則的に排他的ではありませんが、実際には通常1つのリンクに1つの明確なルールが必要です。日付とクリック数の両方で期限切れになるリンクは問題ありませんが、どちらの条件が先に発動するかを明示してください。答えはリンクの有効期限についての推論を変えるからです。特定のリンクがなぜ期限切れになるかを1文で言えない場合、おそらく間違ったモードを選んでいます。
期限切れリンクにアクセスしたときエッジが返すもの#
有効なショートリンクは転送先への 302 で応答します。期限切れのものはターミナルなものを返す必要があり、ステータスコードの選択は装飾的なものではありません。
最もクリーンな答えは 410 Gone です。RFC 9110(HTTPセマンティクス仕様)によると、410 はリソースが意図的かつ永続的に利用不可であり、サーバーに転送先がないことを意味します。それはまさに期限切れリンクが何であるかです。MDNの410 Goneリファレンスによると、404 と異なり 410 はリソースがかつて存在し現在は永久に消えたという意図的なシグナルであり、クローラーがURLをインデックスからより早く削除するヒントです。インデクサーに忘れてほしい期限切れキャンペーンリンクには 410 が正直なコードです。
リンクがかつて存在したことを認めたくない場合もあります。その場合 404 Not Found が適切です。期限切れのスラッグを本当のリンクだったことがないかのように扱い、URLがかつて有効だったことの確認さえも何かを漏らす機密素材への1回限りリンクにはより慎重な姿勢です。404 と 410 のどちらも有効なターミナルレスポンスです。違いは何を開示することを厭わないかです。
ブランドドメインでは人間により優しい3番目の選択肢があります:ブランド付きの期限切れページ。裸のステータスコードの代わりに、エッジはリンクが終了したことを示す小さなHTMLページを配信し、理想的には現在の代替先を指します。これは本物の人が印刷された素材や古いメールからクリックするかもしれないマーケティングリンクへの正しい選択です。410-with-bodyは引き続き標準に準拠しています:同じレスポンスで 410 ステータスを返しながら説明ページを配信できます。これがカスタムドメインでより重要な理由は、期限切れページがジェネリックエラーではなくあなたのブランドを伝え、行き止まりを和らげるからです。
決定は通常リダイレクトを発行するものと同じホップで行われます。これはスマートリンクについて述べた同じアーキテクチャ上の要点です:ルーティングやゲートの決定を行う最も安価な場所は、すでにレスポンスを書き込んでいるプロセスです。有効期限はそのパスでのもう1つのチェックに過ぎず、リダイレクトが構築される前に評価されます。期限切れリンクはエッジに追加の比較を要求しますが、追加のサービス呼び出しはありません。
オーディエンス別のユースケース#
異なるチームが異なる理由で有効期限を使い、適合するモードはその理由から決まります。
マーケティングチームはほとんどの場合、日付ベースの有効期限を求めます。セール終了後も転換し続けるフラッシュセールリンクは、ランディングページの価格がリンクのオファーと一致しなくなるため、サポートチケットの種になります。キャンペーンウィンドウに合わせた有効期限を設定することでリンクを誠実に保てます。ハードな 410 よりも優しいパターンは、ライブのオファーを期限切れにしてスラッグを「このオファーは終了しました、現在のものはこちら」ページに再設定することです。これはリンク腐敗プレイブックの日没の動きを意図的に適用したものです。より広いキャンペーンツーリングについては、マーケター向けElidoで有効期限がUTMテンプレートとコンバージョントラッキングとどのように並ぶかを説明しています。
法務・コンプライアンスチームはデータ最小化を重視します。GDPRの第5条(1)(c)のデータ最小化原則は、個人データはその目的に必要なものに限定されるべきと述べています。個人データへのアクセスを許可するリンクはその目的より長く生きるべきではありません。コントラクターが今四半期にレポートを取得するためだけにリンクが存在するなら、四半期末の有効期限は、データ自体の保存ポリシーがすでに述べているのと同じ原則のリンクレベルの表現です。コンプライアンス向けElidoとトラストページでレジデンシーと監査の側面を詳しく説明しています。
機密ファイルを共有するチームはクリック数と1回限り使用に頼ります。認証情報の引き渡し、1回限りのデータエクスポート、単一のレビュワー向けのNDA付き文書:リンクは1回、1人のために開かれ、その後は不活性になるべきです。これにパスワードゲートを組み合わせると2つの独立した要素があります。次に説明します。
有効期限とパスワードゲート・地域ルールの組み合わせ#
有効期限はゲートであり転送先ではなく、ゲートは積み重なります。
エッジは最初に有効期限を評価します。期限切れリンクはパスワードプロンプトに到達せず、地域やデバイスのルーティングルールも実行されません。ルーティング先がないからです。この順序は意図的です:すでに使用された漏洩した1回限りのリンクは、パスワードがあったかどうかを調べることさえできません。期限切れレスポンスがそれらのロジックが実行される前に返るからです。
機密共有では、有効期限とパスワードは補完的なコントロールです。パスワードは「あなたが許可されていることを証明する」で、有効期限は「このウィンドウ内で、または1回だけ」です。どちらか1つだけでは両方合わせたものより弱いです。パスワード保護もされている1回限りのリンクは、1回の成功した開封後に無効になり、傍受した人には使えません。ゲート自体についてはパスワード保護付き短縮リンクで説明しています。
地域ルールも同様に組み合わせられます。地域ターゲット付きリンクが時間制限もある場合、有効な間は国別にルーティングし、ウィンドウが閉じると期限切れレスポンスを返します(国チェックは期限切れ後に実行されることはありません)。メンタルモデルは、リクエストが順番に通過するゲートの短いスタックで、有効期限がそのスタックの先頭にあります。これは特別扱いではなく、最も安価で最も決定的なチェックを最初に評価することから自然に生まれます。
セットアップ方法#
実用的なフローはモードに関わらず同じです。短縮リンクを作成または編集し、有効期限ルールを選択し、期限切れアクセスが返すものを選びます。
日付の場合、有効期限のタイムスタンプを設定してタイムゾーンを確認してください。タイムゾーンなしで「真夜中」に期限切れになるように設定されたリンクは、リージョンにまたがって曖昧になります。サポートスレッドに出てくるのはまさにそのような1日のズレです。「キャンペーン最終日の終わり」が誰にとっても同じ意味を持つよう、Europe/Berlin のような明示的なIANAゾーンを使用してください。
クリック数の場合、上限を設定して厳密さが必要かどうかを決めてください。1回限りのリンクには上限を1に設定してください。リンクごとに期限切れレスポンスを選んでください:クローラーに忘れてほしいリンクには 410 Gone、目立たなくしたい場合は 404、人間向けのマーケティングリンクにはカスタムドメインでブランド付き期限切れページを。スマートリンクガイドでルールフィールドを説明しており、料金ページでどの有効期限機能がどのティアにあるかを確認できます。
タイミングについての正直な注意事項があります。ここは他で有効期限が誇大に述べられる場所だからです。日付とクリック数のルールはリンクレコードに対してリクエスト時に評価されるため、日付ベースの有効期限は設定された時刻に反映されます。手動での有効期限(手動でリンクを無効にする)は、他のリンク編集と同様にエッジキャッシュを通じて伝播する必要があります。ハッピーパスでは約1秒で、短いキャッシュTTLが上限になります。これはURLリダイレクトのキャッシュ戦略で記録したのと同じ伝播モデルです。クリック数の上限では、リージョン全体での非常に高い同時トラフィックにより、分散カウンターが落ち着く前にわずかな追加クリックが通過することがあります。1,000のキャンペーン上限ではこれはノイズです。しかし強固なセキュリティ境界として扱う1回限りのリンクでは、カウントだけに頼らないでください:パスワードまたは転送先でのサーバーサイドチェックを重ねてください。「敵対的な並行性の下で、保証付きで正確に1回」という特性は、リダイレクトのホップより転送先の方が適用に適しています。エッジでの有効期限は強力なコントロールであり暗号的な保証ではなく、それを述べることが機能と責任の違いです。
得意なことに使えば、有効期限はリンクツールキットの中で最もコストの低いリスク軽減の1つです。セール後に恥ずかしい思いをしないキャンペーンリンク、自動的に閉じる文書共有、初回使用で使い済みになる認証情報リンク:それぞれが問題のクラスを発生前に取り除きます。短縮リンクを配布することが安全かどうかというより広い問いには、URLショートナーは安全かが補完的な読み物です。