Закінчення терміну посилання - це правило, яке автоматично вилучає коротке посилання після виконання умови, тому URL перестає працювати в момент, який ви обираєте, а не живе вічно. Самознищувальне посилання - та сама ідея, налаштована на одне використання: воно гине після першого кліку. Обидва - навмисні. Ви не виправляєте зламане посилання, ви будуєте таке, яке має зупинитися.
Цей намір є всім відмінністю, яку варто тримати в голові. Посилання, яке ламається через зникнення призначення, згнило, і гниття - це проблема, яку ви виявляєте та виправляєте. Ми написали операційний посібник для цього у статті стратегія запобігання гниттю посилань. Закінчення терміну - це протилежний рух: ви самі вирішуєте, що посилання має стати неактивним, за датою, після N кліків або після рівно одного. Ця стаття охоплює, коли підходить кожен режим, що гранична мережа насправді повертає при натраплянні на прострочене посилання, як закінчення терміну поєднується з паролевими шлагбаумами та геоправилами, та застереження щодо часу, які виникають, якщо ви трактуєте одноразове посилання як жорсткий засіб безпеки.
Коли вдаєтесь до нього? Обмежені за часом пропозиції, які не мають конвертувати після закінчення рекламного вікна. Доступ на обмежений час до спільного документа або експорту даних. Одноразові посилання для облікових даних або конфіденційного файлу. Мінімізація даних для відповідності вимогам, де посилання, яке надає доступ, не має переживати причину, заради якої воно було створено. Посилання подій, які мають зникнути наступного дня після заходу, щоб застарілий QR-код на плакаті не відправляв людей до розкладу минулого року.
Три режими закінчення терміну посилань#
Закінчення терміну має три форми, і вибір правильної - це більша частина рішення.
Перший - за датою та часом. Ви встановлюєте мітку часу закінчення терміну, бажано з часовим поясом, і посилання вирішується нормально до цього моменту, потім зупиняється. Це та тимчасова URL-адреса, яку мають на увазі більшість людей: тимчасове посилання для кампанії, що закінчується опівночі, спільна документація, яка має закритися наприкінці спринту, посилання з обмеженим терміном для запису вебінару, яке ви хочете тримати відкритим лише тиждень.
Другий - за кількістю кліків. Посилання працює для перших N запитів, потім закінчується. Встановіть N рівним 100 - і сто перший відвідувач отримає відповідь про закінчення терміну. Це корисно для лімітованих роздач, бета-запрошень з фіксованою кількістю місць або будь-якого випадку, коли обмеження - «скільки людей це використали», а не «яка зараз дата».
Третій - одноразове використання, тобто кількість кліків з N рівним одиниці. Це самознищувальне посилання. Відкривається один раз і є мертвим при кожному наступному кліку. Пересланні екземпляри даремні, знімки екрана URL даремні, а витоку посилання в журналі вже немає значення, якщо призначений одержувач відкрив його першим.
Режими не є взаємовиключними в принципі, хоча на практиці зазвичай потрібне одне чітке правило на посилання. Посилання, що закінчується за датою та за кількістю кліків, є допустимим, але будьте явними щодо того, яка умова, на вашу думку, спрацює першою, бо відповідь змінює вашу логіку відносно терміну посилання. Якщо не можете пояснити одним реченням, чому конкретне посилання закінчується, ви, мабуть, обрали неправильний режим.
Що гранична мережа повертає при натраплянні на прострочене посилання#
Живе коротке посилання відповідає 302 до свого призначення. Прострочене має відповідати чимось термінальним, і вибір коду статусу є не косметичним.
Найчистіша відповідь - 410 Gone. Згідно з RFC 9110, специфікацією семантики HTTP, 410 означає, що ресурс навмисно та назавжди недоступний, і сервер не має адреси переадресації. Це саме те, чим є прострочене посилання. Довідник MDN для 410 Gone зазначає, що на відміну від 404, 410 є навмисним сигналом, що ресурс колись існував і тепер зник назавжди - натяк, який пошукові роботи враховують, швидше видаляючи URL зі свого індексу. Для простроченого посилання кампанії, яке ви хочете, щоб індексатори забули, 410 є правильним кодом.
Іноді ви вважаєте за краще не визнавати, що посилання колись існувало. Тоді варто використовувати 404 Not Found. Він трактує прострочений слаг так, ніби він ніколи не був реальним посиланням, що є більш стриманою позицією для одноразових посилань на конфіденційні матеріали, де навіть підтвердження того, що URL колись був дійсним, щось витікає. І 404, і 410 є дійсними термінальними відповідями; різниця полягає в тому, що ви готові розкривати.
На брендованому домені є третій варіант, більш зручний для людей: брендована сторінка про закінчення терміну. Замість голого коду статусу, гранична мережа обслуговує невелику HTML-сторінку, яка каже, що посилання закрито та, в ідеалі, вказує на поточну альтернативу. Це правильний вибір для маркетингових посилань, на які реальна людина може клікнути тижнями пізніше, з друкованого матеріалу або старого листа. 410 з тілом відповіді все ще є технічно правильним: можна повернути статус 410 та обслужити пояснювальну сторінку в тій самій відповіді. Причина, чому це важливіше на кастомному домені, полягає в тому, що прострочена сторінка тоді несе ваш бренд, а не загальну помилку, що пом'якшує глухий кут.
Рішення відбувається в тому самому переході, який в іншому випадку здійснив би перенаправлення, що є тією самою архітектурною точкою, про яку ми говорили в контексті розумних посилань: найдешевше місце для прийняття рішення про маршрутизацію або шлагбаум - це процес, який вже записує відповідь. Закінчення терміну - це просто ще одна перевірка в цьому шляху, що оцінюється до побудови перенаправлення. Прострочене посилання коштує граничній мережі додаткового порівняння, а не додаткового сервісного виклику.
Варіанти використання за аудиторією#
Різні команди звертаються до закінчення терміну з різних причин, і режим, що підходить, випливає з причини.
Маркетингові команди здебільшого хочуть закінчення терміну за датою. Посилання на розпродаж, яке продовжує конвертувати після завершення розпродажу, - це заявка в підтримку, що чекає на своє місце, бо ціна на цільовій сторінці більше не відповідає пропозиції в посиланні. Встановлення закінчення терміну, що відповідає вікну кампанії, тримає посилання чесним. Більш зручний підхід, а не жорсткий 410, полягає в тому, щоб закінчити живу пропозицію та перенаправити слаг на сторінку «ця пропозиція закінчилася, ось поточна», що є засобом зупинення з посібника з гниття посилань, застосованим навмисно. Для ширшого інструментарію кампаній, Elido для маркетологів описує, як закінчення терміну суміщається з UTM-шаблонами та відстеженням конверсій.
Юридичні команди та команди відповідності дбають про мінімізацію даних. Принцип мінімізації даних GDPR у Статті 5(1)(c) говорить, що персональні дані мають бути обмежені тим, що необхідно для мети. Посилання, яке надає доступ до персональних даних, не має переживати цю мету. Якщо посилання існує лише для того, щоб дозволити підряднику завантажити звіт цього кварталу, закінчення терміну наприкінці кварталу є виразом на рівні посилання того самого принципу, який ваша політика збереження вже встановлює для самих даних. Elido для відповідності та наша сторінка довіри заглиблюються в сторону резидентності та аудиту.
Команди, що надають спільний доступ до конфіденційних файлів, покладаються на кількість кліків та одноразове використання. Передача облікових даних, разовий експорт даних, документ під NDA для одного рецензента: посилання має відкриватися один раз, для однієї людини, а потім бути інертним. Поєднайте це з паролевим шлагбаумом - і матимете два незалежних фактори, до яких ми переходимо далі.
Як закінчення терміну поєднується з паролевими шлагбаумами та геоправилами#
Закінчення терміну - це шлагбаум, а не призначення, і шлагбауми накопичуються.
Гранична мережа спочатку оцінює закінчення терміну. Прострочене посилання ніколи не досягає паролевого запиту і ніколи не запускає правила геолокації або маршрутизації за пристроєм, бо нема куди маршрутизувати. Цей порядок є навмисним: він означає, що витоку одноразового посилання, яке вже було використане, неможливо навіть перевірити на наявність пароля, оскільки відповідь про закінчення терміну повертається ще до запуску будь-якої з цієї логіки.
Для конфіденційних поширень закінчення терміну та пароль є взаємодоповнюючими засобами контролю. Пароль - це «доведіть, що вам дозволено»; закінчення терміну - це «і лише протягом цього вікна або лише один раз». Кожен з них окремо слабший, ніж обидва разом. Одноразове посилання, яке також захищено паролем, є мертвим після одного успішного відкриття та марним для будь-кого, хто перехопить його після факту. Ми розглядаємо сам шлагбаум у статті короткі посилання з паролевим захистом.
Геоправила поєднуються так само. Геотаргетоване посилання, яке також обмежене часом, буде маршрутизувати за країною, поки воно активне, і повертати відповідь про закінчення терміну після закриття вікна - перевірка країни ніколи не запускається після закінчення терміну. Розумова модель - це короткий стек шлагбаумів, через які запит проходить по черзі, і закінчення терміну знаходиться на верхівці цього стеку. Нічого з цього не є спеціальним випадком; це випливає з оцінки найдешевшої, найбільш вирішальної перевірки першою.
Як налаштувати#
Практичний процес однаковий незалежно від режиму. Ви створюєте або редагуєте коротке посилання, обираєте правило закінчення терміну та вирішуєте, що повертати при натраплянні на прострочене посилання.
Для дати встановіть мітку часу закінчення терміну та підтвердьте часовий пояс. Посилання, налаштоване на закінчення терміну «опівночі» без часового поясу, є неоднозначним у різних регіонах, і ця неоднозначність - саме той вид помилки на один день, який з'являється в гілці підтримки. Використовуйте явний часовий пояс IANA на зразок Europe/Berlin, щоб «кінець робочого дня кампанії» означало одне й те саме для всіх.
Для кількості кліків встановіть ліміт та вирішіть, чи має рахунок бути суворим. Для одноразового посилання встановіть ліміт на одиницю. Обирайте відповідь на прострочене посилання для кожного: 410 Gone для посилань, які ви хочете, щоб пошукові роботи забули, 404 для стриманості, або брендована сторінка про закінчення терміну на кастомному домені для маркетингових посилань, орієнтованих на людей. Посібник з розумних посилань проходить через поля правил, а сторінка ціноутворення пояснює, які можливості закінчення терміну є на якому рівні.
Зауваження про чесність щодо часу, бо тут закінчення терміну де-інде переоцінюють. Правила за датою та кількістю кліків оцінюються в момент запиту відносно запису посилання, тому закінчення терміну за датою набирає чинності в налаштований момент. Закінчення терміну, ініційоване вручну, де ви вимикаєте посилання власноруч, має поширитися через кеші граничних серверів так само, як і будь-яке редагування посилання. Це приблизно секунда на нормальному шляху з коротким TTL кешу як верхньою межею, що є тією самою моделлю поширення, яку ми задокументували у стратегії кешування для URL-перенаправлень. Для лімітів за кількістю кліків дуже високий одночасний трафік через регіони може пропустити невелику кількість зайвих кліків до стабілізації розподіленого лічильника. Для ліміту кампанії в 1000 - це шум. Для одноразового посилання, яке ви трактуєте як жорсткий засіб безпеки, не покладайтеся лише на лічильник: накладіть пароль або перевірку на стороні сервера в призначенні, бо «рівно один раз, гарантовано, при суперницькому паралелізмі» - це властивість, яку призначення краще може забезпечити, ніж перехід перенаправлення. Закінчення терміну на граничному сервері - це сильний засіб контролю, а не криптографічна гарантія, і визнання цього є різницею між функцією та відповідальністю.
Використовуване для того, в чому воно добре, закінчення терміну є одним із найдешевших засобів зниження ризику в наборі інструментів для посилань. Посилання кампанії, яке не може вас збентежити після розпродажу, спільна документація, яка закривається сама, посилання облікових даних, яке витрачається при першому використанні - кожне з них усуває клас проблем до того, як він може статися. Щодо ширшого питання про те, чи безпечно роздавати короткі посилання взагалі, стаття чи безпечні скорочувачі URL є супутнім матеріалом.