RSS 2.0
RSS 2.0 (Really Simple Syndication) — это формат веб-синдикации на основе XML, предназначенный для распространения и публикации часто обновляемого контента, такого как новости, записи блогов, подкасты и заголовки статей. Версия 2.0, выпущенная в 2002 году, является одной из наиболее распространённых и стабильных спецификаций семейства RSS, отличающейся простотой синтаксиса и расширяемостью за счёт использования пространств имён.
История
Предшественником RSS 2.0 стал формат RSS 0.91, разработанный компанией Netscape в 1999 году для портала My.Netscape.com. После того как Netscape отказалась от развития технологии, разработку в 2000 году продолжила компания UserLand Software под руководством Дэйва Винера. В 2002 году была опубликована спецификация RSS 2.0, которая заменила более ранние версии (0.91, 0.92, 0.93, 0.94).
В 2003 году права на спецификацию были переданы Гарвардской школе права (Harvard Law School), где она была закреплена как «замороженная» — то есть не предполагающая дальнейших изменений, за исключением уточнений через пространства имён. Это решение было принято для предотвращения фрагментации стандарта и обеспечения обратной совместимости.
Структура и синтаксис
RSS 2.0 представляет собой XML-документ, корневым элементом которого является <rss> с атрибутом версии version="2.0". Внутри него содержится единственный элемент <channel>, описывающий канал (источник контента) и его элементы.
Обязательные элементы канала
- title — название канала (например, «Новости Яндекс.Погоды»).
- link — URL-адрес веб-сайта, соответствующего каналу.
- description — краткое описание канала.
Необязательные элементы канала
- language — язык контента (например,
ruдля русского). - copyright — информация об авторских правах.
- managingEditor — адрес электронной почты редактора.
- webMaster — адрес электронной почты технического администратора.
- pubDate — дата последней публикации канала в формате RFC 822.
- lastBuildDate — дата последнего изменения канала.
- category — категория канала (может быть указана одна или несколько).
- generator — программа, сгенерировавшая RSS-ленту.
- docs — URL документации по формату (обычно
http://blogs.law.harvard.edu/tech/rss`). - cloud — позволяет подписываться на уведомления об обновлениях через веб-сервис.
- ttl (time to live) — время в минутах, в течение которого канал может кэшироваться.
- image — изображение (логотип) канала, содержащее вложенные элементы
url,title,link, а также необязательныеwidthиheight. - rating — рейтинг контента (например, PICS).
- textInput — элемент для отправки текстовых данных (редко используется).
- skipHours — часы, в которые агрегаторы могут пропускать обновление.
- skipDays — дни недели, в которые агрегаторы могут пропускать обновление.
Элементы записи (item)
Каждый элемент <item> представляет собой отдельную публикацию. Обязательных элементов у записи нет, но рекомендуется указывать хотя бы один из следующих:
- title — заголовок записи.
- link — URL полной версии записи.
- description — краткое содержание или анонс (может содержать HTML-разметку).
- author — адрес электронной почты автора записи.
- category — категория записи.
- comments — URL страницы с комментариями к записи.
- enclosure — медиа-вложение (например, аудиофайл подкаста). Содержит атрибуты:
url(ссылка на файл),length(размер в байтах),type(MIME-тип). - guid (globally unique identifier) — уникальный идентификатор записи (часто совпадает с
link). АтрибутisPermaLink(по умолчаниюtrue) указывает, является ли GUID постоянной ссылкой. - pubDate — дата публикации записи.
- source — источник записи (используется при агрегации).
Пример RSS 2.0-ленты
``xml <?xml version="1.0" encoding="UTF-8"?> <rss version="2.0"> <channel> <title>Пример новостного канала</title> <link>https://example.com</link> <description>Новости из мира технологий</description> <language>ru</language> <pubDate>Mon, 01 Jan 2024 12:00:00 GMT</pubDate> <item> <title>Новая версия RSS 2.0</title> <link>https://example.com/news/rss-2-0</link> <description>Вышло обновление формата синдикации.</description> <pubDate>Mon, 01 Jan 2024 10:00:00 GMT</pubDate> <guid>https://example.com/news/rss-2-0</guid> </item> </channel> </rss> ``
Расширяемость и пространства имён
Поскольку спецификация RSS 2.0 является «замороженной», новые возможности добавляются через пространства имён XML. Это позволяет включать в ленту дополнительные данные без нарушения совместимости. Наиболее известные расширения:
- Dublin Core (dc:) — добавляет метаданные, такие как автор, тема, дата создания (например,
<dc:creator>Иван Иванов</dc:creator>). - content:encoded — используется для передачи полного HTML-содержимого записи (часто применяется в WordPress).
- sy:updatePeriod и sy:updateFrequency — из спецификации Syndication для указания частоты обновления.
- Media RSS (mrss:) — расширение для описания медиа-контента (видео, изображения, аудио).
- iTunes RSS (itunes:) — спецификация Apple для подкастов, включающая теги для обложки, категорий, автора и длительности эпизода.
Применение
RSS 2.0 используется для:
- Новостных агрегаторов — автоматического сбора заголовков и анонсов с различных сайтов.
- Блогов и CMS — большинство систем управления контентом (WordPress, Joomla, Drupal) генерируют RSS-ленты по умолчанию.
- Подкастов — RSS 2.0 с элементом
enclosureявляется основой для распространения аудио- и видео-подкастов. iTunes и другие каталоги подкастов используют RSS-ленты для обновления эпизодов. - Мониторинга контента — сервисы отслеживания изменений на сайтах (например, Google Alerts) используют RSS.
- Социальных сетей и платформ — некоторые платформы (например, Telegram через ботов) могут импортировать RSS-ленты для публикации новостей.
Критика и ограничения
Несмотря на широкое распространение, RSS 2.0 имеет ряд недостатков:
- Отсутствие строгой валидации — спецификация не требует обязательного наличия каких-либо элементов у записи (
item), что приводит к неполным или некорректным лентам. - Проблемы с датами — формат даты RFC 822 может быть неверно интерпретирован разными парсерами.
- Ограниченная поддержка структурированных данных — для сложных метаданных (например, авторства, лицензий) необходимо использовать внешние пространства имён.
- Конкуренция с Atom — формат Atom (RFC 4287) предлагает более строгую модель, встроенную поддержку XML-схем и лучше подходит для современных веб-приложений. Однако RSS 2.0 остаётся более распространённым благодаря исторической инерции.
- Упадок использования — с ростом социальных сетей и алгоритмических лент количество пользователей RSS-агрегаторов сократилось, хотя технология продолжает применяться в профессиональной среде (например, в подкастинге и мониторинге СМИ).
Интересные факты
- Название «RSS» расшифровывается по-разному в зависимости от версии: для RSS 0.91 — «Rich Site Summary», для RSS 2.0 — «Really Simple Syndication».
- Спецификация RSS 2.0 была написана Дэйвом Винером и опубликована под лицензией Creative Commons Attribution-ShareAlike.
- В 2010-х годах Google закрыл свой сервис Google Reader, что привело к значительному снижению популярности RSS среди массовой аудитории.
- Формат RSS 2.0 используется в государственных информационных системах России, в частности, для публикации новостей на официальных сайтах органов власти.
Источники
- Winer, D. (2002). RSS 2.0 Specification. Harvard Law School.
- W3C. (2003). RSS 2.0 and Atom 1.0 Compared.
- Pilgrim, M. (2004). The Myth of RSS Compatibility. O'Reilly Media.
- Спецификация RSS 2.0 на сайте Harvard Law School (blogs.law.harvard.edu/tech/rss).
- RFC 4287 — Atom Syndication Format.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →