Discoverability Легко

HTTP Link-заголовки для обнаружения агентами

Что такое Link-заголовки (RFC 8288), зачем они AI-агентам для обнаружения ресурсов, пример, правильно vs неправильно, ошибки и как проверить.

Обновлено:

Что это

HTTP-заголовок Link (RFC 8288) объявляет связанные ресурсы прямо в ответе сервера, без необходимости парсить HTML. Через rel-типы вы указываете агенту, где лежат каталог API, условия использования, политика конфиденциальности и т.п.

Зачем это AI-агентам

Агент делает дешёвый HEAD/GET и сразу из заголовков узнаёт, что у вас есть и где это, — не загружая и не разбирая весь HTML. Это быстрый, надёжный канал обнаружения возможностей: api-catalog, terms-of-service, service-desc и др.

Минимальный рабочий пример

HTTP/1.1 200 OK
Link: <https://example.com/.well-known/api-catalog>; rel="api-catalog",
      <https://example.com/terms>; rel="terms-of-service"

Несколько ссылок разделяются запятой; URL — в угловых скобках, rel — после ;.

Правильно vs неправильно

ПравильноНеправильно
Стандартные rel (api-catalog, terms-of-service)Выдуманные rel, которые агент не понимает
Абсолютные URL в <...>Относительные пути
Заголовок на релевантных ответахLink только на 404 или вовсе нет
Корректный синтаксис RFC 8288Сломанные скобки/запятые — заголовок не парсится

Типичные ошибки

  • Самодельные rel-типы вместо зарегистрированных.
  • Относительные URL — спецификация допускает, но агенты надёжнее работают с абсолютными.
  • Синтаксические ошибки (забытая > или ,) — весь заголовок невалиден.
  • Дубли, конфликтующие с <link> в HTML.

Как проверить

Скан проверит наличие и корректность Link-заголовков. Вручную:

curl -sI https://example.com/ | grep -i '^link:'

Ответ должен содержать Link: с понятными rel-типами и абсолютными URL.

Источники