RSS-лента

RSS feed

Также: RSS-фид, лента RSS

RSS-лента — документ в формате XML, с помощью которого сайт передаёт публикации и их обновления программам-получателям. В RSS 2.0 документ объединяет сведения об источнике и отдельные записи о его материалах.

Спецификация RSS 2.0 описывает формат распространения веб-содержимого: внутри документа находится канал channel, а внутри него — записи item. XML, расширяемый язык разметки, позволяет обозначить части документа именованными элементами: программа отличает заголовок от ссылки по меткам, а не по размеру шрифта на странице. Это основание определения ленты как структурированного документа. [1, 8]

Кратко

  • Канал описывает источник, запись — отдельный материал. Одинаковое имя поля, например title, имеет разный смысл на этих двух уровнях. [1]
  • guid помогает распознавать уже полученную запись; ссылка и идентификатор выполняют разные задачи. [3]
  • Полнота набора записей и полнота текста каждой статьи — разные свойства ленты. [5]
  • Проверка XML, требований RSS и правил конкретной площадки отвечает на разные вопросы. Допуск фида к обработке ещё не обещает показ в поиске. [6, 8]

Происхождение и история термина

RSS Advisory Board относит выпуск RSS 0.90 компанией Netscape к 15 марта 1999 года и указывает автором Раманатана Гуху. В июле того же года Netscape опубликовала RSS 0.91 Дэна Либби. Дальнейшая линия UserLand связана с Дейвом Вайнером; её RSS 2.0 датирован 19 августа 2002 года. Это история конкретной ветви формата: сама передача веб-содержимого между системами существовала и раньше. [2]

В RSS 2.0 название раскрывается как Really Simple Syndication — буквально «очень простая синдикация», то есть распространение содержимого для дальнейшего использования другими программами. На 23 октября 2026 года RSS Advisory Board обозначает текущей редакцию спецификации 2.0.11 от 30 марта 2009 года. В самом XML при этом остаётся version="2.0": номер редакции документа со спецификацией и номер формата различаются. [1, 2]

Atom 1.0 описан в RFC 4287, опубликованном в декабре 2005 года. RFC — серия технических документов; в данном случае документ задаёт формат веб-синдикации и метаданных, то есть сведений о записях. Atom решает сходную задачу, но не является новой версией RSS. [4]

Суть и механизм

Представим учебную городскую редакцию. Она выпускает новости о транспорте, культуре и благоустройстве. Читателю нужна подборка обновлений из нескольких изданий. Программа чтения, или агрегатор, получает их ленты и показывает записи в своём интерфейсе; такое периодическое получение и представление пользователю описано в RSS Profile. Сам документ передаёт сведения, а внешний вид списка определяет программа. [3]

В нашей учебной схеме редакция публикует статью, генератор собирает ленту, а получатель запрашивает её и сравнивает записи с уже сохранёнными. Это три разных события. Если статья вышла в десять утра, а в программе появилась позже, одно время ещё не объясняет задержку: необходимо установить, когда обновилась выгрузка и когда её получил клиент.

У канала обязательны title, link и description: название, адрес соответствующего сайта и описание. Запись должна содержать хотя бы title или description; оба поля тоже допустимы. Поэтому базовый RSS не требует полного текста каждой новости. [1]

Как программа узнаёт прежнюю новость

guid — глобально уникальный идентификатор записи, строка для распознавания материала. RSS Profile рекомендует указывать его у каждой записи. Если стоит isPermaLink="false", строка может быть придуманным издателем идентификатором, а не адресом страницы. [3]

В учебном примере новость о выставке имеет идентификатор example.com:article:42. Редактор исправляет заголовок, затем переносит статью на другой адрес. Для проверки мы сохраняем идентификатор, но меняем ссылку. Получатель, который сравнивает guid, сможет связать две выгрузки с одной записью. Если генератор каждый раз выдаёт новый идентификатор, эта связь теряется: изменение текста может выглядеть как новый материал. Это следствие выбранного способа сравнения, а не обещание одинакового поведения всех клиентов. Спецификация допускает использование guid агрегатором, но не навязывает единственный алгоритм. [1]

pubDate записи означает время её публикации. lastBuildDate канала относится к последнему обновлению содержимого ленты. [3] В нашем примере повторное создание файла в полдень не превращает утреннюю новость в новую публикацию. При диагностике эти события стоит записывать отдельно: тогда видно, что именно изменилось после редакторской правки.

Виды и классификации

RSS и Atom

Признак RSS 2.0 Atom 1.0
Контейнер ленты rss с одним channel. [1] feed в пространстве имён Atom. [4]
Запись item. [1] entry. [4]
Идентификатор guid необязателен в базовой спецификации. [1] id обязателен у ленты и записи. [4]
Перенос и правка guid предназначен для распознавания записи. [3] Стандарт прямо требует сохранять id при переносе и пересмотре. [4]

Пространство имён — указание, к какому словарю разметки относятся элементы. У Atom это http://www.w3.org/2005/Atom; оно помогает отличать его элементы от одноимённых элементов других форматов. [4] Переименование учебного файла из news.rss в news.atom не перестраивает содержимое. Чтобы преобразовать ленту, нужно сопоставить поля и выполнить требования другого формата.

Полный набор, страницы и архив

RFC 5005 различает три способа организации записей. Полная лента представляет весь логический набор в одном документе. Постраничная распределяет его между связанными временными документами: пока клиент переходит со страницы на страницу, их содержимое может измениться. Архивная связывает свежие записи с постоянными архивными документами, позволяя восстановить набор без потери записей. Документ описывает эти механизмы на основе Atom, а информативное приложение B показывает их применение к RSS 2.0. [5]

Логический набор — все записи, которые относятся к выбранной ленте; это не обязательно весь сайт. Учебная лента отдела культуры может содержать все его публикации и не включать транспортные новости. Полноту оценивают относительно назначенной области, иначе любой тематический отбор будет ошибочно выглядеть потерей данных.

Длина статьи — другой вопрос. Вообразим два учебных файла: первый содержит анонсы всех ста публикаций выставочного проекта, второй — полные тексты только десяти последних. Первый полон по выбранному набору, второй нет. Из слов «полнотекстовая лента» нельзя узнать, доступна ли через неё история проекта. Различие следует из определения логической ленты в RFC 5005. [5]

Как применяется на практике

Одна запись в XML

Собственный учебный пример показывает выставочную новость. Это не выгрузка действующего издания:

```xml

Учебная редакция https://example.com/ Сообщения учебного проекта Открылась выставка https://example.com/news/exhibition Экспозиция посвящена истории города. example.com:article:42 Fri, 23 Oct 2026 10:00:00 GMT ```

Вложенность читается как папки: название редакции находится в канале, а заголовок выставочной новости — внутри записи. Если переместить заголовок новости на уровень канала, XML может остаться синтаксически правильным, но программа получит другое сообщение об источнике. Так учебный пример показывает, почему проверки скобок и кавычек недостаточно.

Передача поисковым системам

Google разрешает передавать RSS 2.0 и Atom 1.0 как Sitemap — файл, сообщающий поисковой системе об адресах сайта. Его документация предупреждает, что автоматически создаваемая лента обычно содержит сведения лишь о недавних адресах. Передача такой ленты поэтому не равнозначна передаче полного архива сайта. [7]

Российский пример — раздел «Свежее и актуальное» Яндекс Вебмастера. Его справка требует передавать у сообщения заголовок, адрес, время публикации и полный текст. Для текста предусмотрен yandex:full-text; подробная таблица допускает вместо него content:encoded, который тогда становится обязательным. Это профиль конкретной интеграции, а не общие требования RSS. [6]

Вопрос Google Яндекс
Какая интеграция описана? RSS/Atom как формат Sitemap. [7] RSS для «Свежего и актуального». [6]
Какое ограничение существенно? Лента может сообщать только о недавних URL. [7] Даже загруженное и обработанное содержимое не получает гарантии показа. [6]

Сравниваются две конкретные задачи. Например, учебная лента с коротким анонсом может соответствовать базовому RSS, но не передать полный текст, нужный указанному профилю Яндекса. Исправление в таком случае касается подготовки данных для получателя. Для интеграции с Дзеном нужна отдельная проверка его правил; данный образец её не выполняет.

Как измерить или проверить

Начать удобно с учебной публикации, содержание которой известно редактору. Сохраните две выгрузки: до исправления заголовка и после него. Проверьте, где находится запись, изменился ли её текст и сохранился ли идентификатор. Затем сравните эти файлы с тем, что показывает получатель. Это предложенный редакцией способ локализовать проблему, а не нормативная процедура для всех агрегаторов.

Первый уровень проверки — XML: правильно ли вложены элементы и допустимы ли символы. В обычном текстовом содержимом символы & и < нужно экранировать, например записывать как &amp; и &lt;. [8] Затем проверяют структуру RSS, требования получателя и ожидаемый состав записей. Каждый уровень может дать собственную ошибку, поэтому общего сообщения «лента работает» для диагностики мало.

Сколько записей можно пропустить

В учебной модели получатель успешно забирает ленту в 10:00 и 10:30. Издатель хранит только последние двадцать записей по порядку добавления. Между запросами выходят тридцать пять новых записей; промежуточных запросов, архивных страниц и других способов восстановления нет. К 10:30 первые пятнадцать новинок уже вытеснены. Такая задача возникает из-за ограниченного окна истории, описанного в RFC 5005. [5]

Для этой модели обозначим число новых записей между запросами через N, вместимость окна через K, число недоступных в следующей копии новинок через M. Все три величины измеряются в записях, а не в минутах или процентах:

M=max⁡(0,N−K).M=\max(0,N-K).

В нашем случае из тридцати пяти вычитаем двадцать и получаем пятнадцать. Если новых записей ровно двадцать, все помещаются; если новых записей нет, потерь тоже нет. Отрицательный результат заменяется нулём: «минус пять пропущенных новостей» не имеет смысла. Это детерминированный расчёт при заданных условиях, не вероятность пропуска.

Условие о порядке добавления существенно. Если редакция поднимает старые записи наверх, исключает часть рубрик или получатель использует архив, формула уже не описывает всю ситуацию. Частота выхода новостей также может меняться: среднее число публикаций за сутки не доказывает, что короткое окно выдержит любой получасовой всплеск. Для такой проверки нужны фактические последовательности публикаций и запросов.

Учебный генератор

Приложение «Учебный генератор RSS 2.0» создаёт один канал и одну запись. Заполните сведения об источнике, заголовок, адрес, описание, время публикации и отдельный guid. Идентификатор выводится с isPermaLink="false": его можно сохранить при изменении адреса материала. Уникальность среди других публикаций остаётся задачей издателя — генератор не хранит базу записей.

Форма принимает время только в UTC, всемирном координированном времени, в записи 2026-10-23T10:00:00Z. В XML оно превращается в дату RSS с обозначением GMT; это форматирование одного момента, а не перевод местного времени. Несуществующие даты отклоняются. Ограничения формы — годы от 1900 до 9999, только HTTP(S)-адреса и заполненные восемь полей — выбраны для учебного инструмента, а не объявлены минимумом стандарта.

Описание записи вводится как обычный текст. Инструмент сначала подготавливает его для HTML-представления, затем экранирует для XML: RSS Profile рассматривает item/description как содержимое, пригодное для показа в HTML. [3, 8] Поэтому введённое <b>афиша</b> должно остаться текстом с угловыми скобками, а не стать командой выделения. По этому же правилу сохраняются буквальные последовательности вроде &amp;.

Кнопка сброса возвращает учебные значения и очищает результат. Генератор не получает чужие ленты, не проверяет сайт и не отправляет XML наружу. Результат предназначен для разбора структуры и ручного копирования; для постоянно обновляемого издания потребуется собственный процесс формирования ленты.

Ошибки, ограничения и спорные вопросы

Смена guid при каждой правке способна создавать повторы у клиента, который определяет новизну по этому полю. Обратная ошибка — присвоить один идентификатор разным материалам: тогда такой клиент может принять новую статью за уже известную. Это две стороны одной учебной модели сравнения строк. В Atom требование сохранять идентификатор при пересмотре записи закреплено прямо. [3, 4]

Работающий XML-парсер не проверяет достоверность заголовка, полноту архива или соответствие записи статье на сайте. Так, в учебном примере ссылка может вести на другую выставку, хотя все элементы будут закрыты правильно. Содержательную проверку выполняют сопоставлением с публикацией, а техническую — средствами разбора формата.

Чужое содержимое требует отдельной обработки. RFC 4287 предупреждает об опасных возможностях HTML/XHTML внутри Atom, включая исполняемое содержимое; корректность внешнего XML не делает такую разметку безопасной для вставки в интерфейс. [4] Документация W3C Feed Validation Service отдельно отмечает риск внешних SYSTEM-сущностей и рекомендует самодостаточную ленту. [9]

RSS Profile опубликован в 2007 году и содержит результаты испытаний тогдашних программ. Его рекомендации помогают понять совместимость, но перечень протестированных клиентов нельзя превращать в описание современного рынка. [3] Для конкретного получателя полезно повторять проверку после изменения генератора или правил интеграции и сохранять дату вместе с результатом.

Частые вопросы

RSS должен содержать полный текст статьи?

Нет: описание записи может быть анонсом или полным содержимым. Дополнительные требования задаёт получатель, например профиль Яндекса. [3, 6]

Atom можно получить, переименовав файл?

Нет. Это другой формат со своей структурой, пространством имён и обязательными полями. Требуется преобразование содержимого. [4]

Может ли guid отличаться от ссылки?

Да. При isPermaLink="false" он служит идентификатором и не обязан быть открываемым адресом. [3]

Почему старая новость исчезла из ленты?

Одна возможная причина — вытеснение из ограниченного окна. Исчезновение из этой копии само по себе не доказывает удаления статьи с сайта; для ответа надо проверить выбранный набор и доступный архив. [5]

Генератор подключает сайт к поиску?

Нет, он только создаёт учебный XML. Передача и проверка фида выполняются отдельно по правилам получателя, а положительный технический результат не обещает показ материалов. [6, 7]

Связанные термины

Источники

  1. RSS Advisory Board. (2009, March 30). RSS 2.0 specification (version 2.0.11). https://www.rssboard.org/rss-specification (обращение: 23.10.2026). ↑ а б в г д е ж з
  2. RSS Advisory Board. (n.d.). RSS history. https://www.rssboard.org/rss-history (обращение: 23.10.2026). ↑ а б
  3. RSS Advisory Board. (2007, October 15). RSS best practices profile (version 1.0). https://www.rssboard.org/rss-profile (обращение: 23.10.2026). ↑ а б в г д е ж з и к
  4. Nottingham, M., & Sayre, R. (Eds.). (2005, December). The Atom syndication format (RFC 4287), §§1.2,4.1.1,4.1.2,4.2.6,8.1. https://www.rfc-editor.org/rfc/rfc4287.html (обращение: 23.10.2026). ↑ а б в г д е ж з и
  5. Nottingham, M. (2007, September). Feed paging and archiving (RFC 5005), §§1–4, Appendix B. https://www.rfc-editor.org/rfc/rfc5005.html (обращение: 23.10.2026). ↑ а б в г д
  6. Яндекс. Свежее и актуальное // Вебмастер : справка. URL: https://yandex.ru/support/webmaster/ru/search-appearance/fresh-content (дата обращения: 23.10.2026). ↑ а б в г д е
  7. Google. (2026, July 8). Build and submit a sitemap. https://developers.google.com/search/docs/crawling-indexing/sitemaps/build-sitemap (обращение: 23.10.2026). ↑ а б в г
  8. Bray, T., Paoli, J., Sperberg-McQueen, C. M., Maler, E., & Yergeau, F. (Eds.). (2008, November 26). Extensible Markup Language (XML) 1.0 (5th ed.), §§2.1,2.2,2.4. W3C. https://www.w3.org/TR/REC-xml/ (обращение: 23.10.2026). ↑ а б в г
  9. W3C Feed Validation Service. (n.d.). Feeds must not contain SYSTEM entities. https://validator.w3.org/feed/docs/error/ContainsSystemEntity.html (обращение: 23.10.2026). ↑

Служебный блок

Версия
3.0
Факты проверены
Подготовка
Редакция Медиатрона
Публикация
утверждена владельцем издания 5 ноября 2026 г.

Редакция Медиатрона. Факты сверены с первоисточниками на дату проверки, публикация утверждена владельцем издания.

Нашли ошибку? info@mediatrone.ru