Esta página explica a Web Syndication, ou Publicação Web, com o RSS. Você aprenderá como fazer isso para que ambas — pessoas e máquinas — possam encontrar seu RSS feed, ou alimentador de RSS.
O que é Syndication (Publicação)
Syndication (ou Web Syndication) é o ato de tornar um conteúdo disponível para outros lerem, ouvirem ou assistirem. Quando você cria um blog, um rádio de Internet ou um programa televisivo para Internet, você está publicando (syndicating).
O RSS ajuda você a publicar. Ele organiza sua publicação em um formato fácil para as máquinas entenderem.
Publicar com RSS pode significar 3 coisas:
- Criar um RSS feed (também conhecido por alimentador de RSS).
- Adicionar um elemento especial
<link>
à(s) página(s) HTML. - Adicionar um elemento especial
<a>
à(s) página(s) HTML.
Nós já falamos sobre o item 1 — Criar um RSS feed — então nos focaremos nos itens 2 e 3 aqui.
Adicionando o <link>
Freqüentemente o dado em um RSS feed é também disponibilizado em uma página web HTML. Quando este é o caso, a página web HTML pode avisar pessoas e máquinas sobre o feed com um código como o seguinte:
<link rel="alternate" type="application/rss+xml" href="https://exemplo.com/feed" />
Muitas vezes as pessoas querem anunciar o RSS feed em outros lugares também. Por exemplo, em um artigo de blog. Você pode fazer isso com um código como o seguinte:
<link rel="home" type="application/rss+xml" href="https://exemplo.com/feed" />
Note que este parece quase exatamente a mesma coisa do código anterior. A única coisa modificada foi o valor do atributo rel
. (O código anterior teve um rel
de valor alternate
. E este código teve um rel
de valor home
.)
NOTA: Tem havido muito abuso no uso do elemento <link>
para publicação com RSS. Alguns bloggers o têm usado para que outros se inscrevam em seus blogs de qualquer página do blog (e não apenas da home page). O que resultou na adição de vários <link>
com rel="alternate"
por todos os lugares. (Nas entradas de blogs também e não apenas nas home page.) Isso é errado! Usar rel="alternate"
neste caso é errado. Deve ser usado o rel="home"
. (Veja Understanding rel and rev para mais informações.) A parte importante quando se usa o <link>
para publicar seu RSS feed é pôr o type="application/rss+xml"
.
Adicionando o <a>
Embora o uso do elemento HTML <link>
seja poderoso; ele é na maioria das vezes escondido. Para anunciar o RSS feed de um modo mais direto, o elemento HTML <a>
pode ser utilizado. Fazendo isso pode-se conseguir o mesmo resultado do elemento <link>
discutido acima.
Quando puser um link de uma página web HTML onde os dados em um RSS feed também são disponibilizados use:
<a rel="alternate" type="application/rss+xml" href="https://exemplo.com/feed">...</a>
Quando puser um link de alguma coisa como um artigo de post de um blog, use o seguinte código:
<a rel="home" type="application/rss+xml" href="https://example.com/feed">...</a>
Mais uma vez, note que esses dois trechos de código parecem quase exatamente os mesmos. A única coisa modificada foi o valor do atributo rel
. (O primeiro trecho de código tem um rel
de valor alternate
e o segundo trecho tem um rel
de valor home
.)
Ícones de Feed
RSS (e outros) feeds utilizam um ícone especial. É recomendado que use este ícone quando criar um link especial <a>
para seu alimentador. O ícone parece como este:
Você pode conseguir mais ícones como este do Feed Icons. (Outros tamanhos e cores também estão disponíveis. Arquivos fontes também estão disponíveis.)
Técnicas Avançadas de Publicação (Syndication)
Embora esta técnica de publicação não seja necessária, é recomendado seu suporte; especialmente para web sites e aplicações que necessitam de alta performance.
O protocolo HTTP — uma das tecnologias núcleo por trás da web — provê uma forma de priorizar o tipo de conteúdo que um cliente HTTP prefere para receber. Esta técnica toma vantagem disso fazendo com que os clientes prefer o RSS (acima do HTML ou outros formatos). Aqui está um exemplo simples de como é feito:
Accept: application/rss+xml, text/html
Apesar de na realidade, na produção de software, se pareça mais com isso.
Accept: application/rss+xml, application/xhtml+xml, text/html
Eis um exemplo mais completo:
GET / HTTP/1.1 Host: example.com Accept: application/rss+xml, application/xhtml+xml, text/html
Quando um servidor HTTP (ou scripts de servidores) pega isso, ele deve redirecionar para o cliente HTTP do feed. Ele deve fazer isso com um HTTP 302 Found
. Algo como:
HTTP/1.1 302 Found Location: https://exemplo.com/feed