Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

L'estensione di un feed non è tutto

Quale estensione scegliere per i nostri feed RSS?
Quale estensione scegliere per i nostri feed RSS?
Link copiato negli appunti

Qualche volta mi è capitato di leggere, su forum internazionali, discussioni inerenti la scelta dell'estensione per un feed, per il momento non specifichiamo se RSS o Atom o altro formato.

A volte si addossava all'estensione la causa del mancato funzionamento di un feed, altre volte ancora ci si preoccupava di cosa avrebbe potuto succedere se l'estensione non fosse stata quella corretta.
Giriamo per un momento la domanda più in generale: esiste un'estensione standard per un feed?

La risposta al momento è no.

Il perché in realtà è abbastanza semplice da comprendere se si conosce un po' più approfonditamente il significato e l'utilità di un'estensione.
Di fatto non è un'estensione che determina il tipo di un file, bensì il suo contenuto.

Un esempio relativo alle estensioni

Per esempio, prendiamo una pagina web contenente del codice HTML, ovvero del testo, salvato con un'estensione .html.
Provate a rinominarla con un'altra estensione, ad esempio .txt. Ora aprite il file con un comune editor di testo, ad esempio Notepad. Riuscite a leggerla?
Certamente, e come vedete non avete bisogno di un browser.

Ancora una prova.
.dat è un formato spesso utilizzato da programmi per il sistema operativo Windows. All'interno vengono riportati dati ed informazioni codificati in formato binario oppure in un formato comprensibile praticamente solo al programma che li ha generati.

Di conseguenza, si presuppone che un file .dat, in quanto binario, non possa essere aperto con un editor di testo.
Prendete il vostro file di prima e cambiate l'estensione da .txt a .dat. Se siete su Microsoft Windows vedrete cambiare icona, ma se tentate di aprirlo con lo stesso editor di testo prima usato, ecco che magicamente sarà possibile leggerne il contenuto.

Questo cosa significa?

Il succo del gioco delle estensioni è che di fatto l'estensione vuol dire tutto e nulla. Nulla poiché io posso assegnare a qualsiasi file una qualsiasi estensione. Potrò leggere quel file con un qualsiasi programma che, a priori, sia in grado di analizzare il tipo di contenuto del file.

Con un programma come Microsoft Excel posso leggere un file di Excel salvato in .xyz, ma non posso leggere un'immagine JPEG salvata in .xls poiché la sua codifica interna non è compatibile.
Allo stesso tempo l'estensione è determinante poiché, di norma, ad ogni programma è associata una serie di contenuti supportati, per semplicità ricondotti ad una lista di estensioni.

L'estensione di un feed

Torniamo ora al nostro feed. Dando uno sguardo alle specifiche dei formati RSS è chiaro che il feed altro non è che un documento XML.
Banalizzando ulteriormente il discorso il feed non è altro che un documento di testo scritto seguendo delle apposite regole, le specifiche appunto.

Se voi prendete un editor di testo, ancora una volta può andar bene Notepad, e scrivete all'interno:

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
   <channel>
      <title>SIl mio feed</title>
      <link>https://www.html.it/</link>
      <description>Un semplice feed.</description>
      <language>it</language>
      <copyright>Copyright 2006</copyright>
      <lastBuildDate>Thu, 29 Jun 2006 19:11:10 +0100</lastBuildDate>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs>
   </channel>
</rss>

avete appena creato un feed RSS 2.0.
Salvatelo con una qualsiasi estensione e se lo richiamate da un lettore per feed funzionerà perfettamente, ad eccezione del fatto che non ha alcuna news all'interno, per ora.

Esiste un'estensione standard?

Appurato dunque che un feed può avere una qualsiasi estensione, la domanda successiva potrebbe essere se esiste comunque un'estensione standard.

La risposta è sì. Inizialmente le specifiche RSS indicavano come standard:

  • .rss per i feed RSS 2.0
  • .rdf per i feed RSS 1.0, basati sul formato RDF

Al momento le cose sono cambiate leggermente e si è consolidata la seguente abitudine:

  • .xml per i feed non basati su RDF, quindi RSS 0.9x e RSS2.0 –- Esempio index.xml
  • .rdf per i feed RSS 1.0 –- Esempio index.rdf
  • .xml per i feed Atom, contraddistinti dal diverso nome della radice –- Esempio atom.xml

Non esiste un obbligo ad utilizzare queste convenzioni, tuttavia è consigliato soprattutto nel caso offriate un feed in hosting.
Questo perché ogni estensione è associata ad un MIME Type che fornisce gli header corretti agli utenti che si connettono.

Tradotto in poche parole, se voi chiamate il vostro file index.xyz ma il server non sa che xyz è un feed da associare al content type text/xml, il risultato sarà che nessuno potrà leggere il vostro feed.
Se avete esigenze particolari potete:

  • Cambiare le configurazioni del webserver aggiungendo le estensioni che desiderate
  • Utilizzare un linguaggio lato server precedendo l'output del contenuto con il corretto content type

Il secondo caso rientra nelle condizioni necessarie in caso di feed dinamici.

Estensione per feed dinamini

Che cos'è un feed dinamico? No, non è un feed particolarmente arzillo, tanto meno uno che balla.
Il feed dinamico è quello che viene generato al momento della richiesta, attraverso un linguaggio lato server. Il contenuto del feed non è salvato in un file ma è creato al volo in base alle condizioni correnti.

E' questo il caso, per esempio, dei feed creati attraverso un CMS. Si pensi ai feed creati con Drupal o il più noto PHP Nuke.
In questo caso per funzionare correttamente, il file che genera il feed deve avere un'estensione conforme al linguaggio lato server utilizzato. Un feed generato attraverso PHP si chiamerà ad esempio feed.php oppure index.php mentre uno creato con ASP avrà .asp come estensione.

Come far capire allora al webserver e all'utente che quel file non è un comune file PHP o ASP bensì un feed XML?
In questo caso è necessario far precedere l'output con il content type appropriato.

Immaginando che il contenuto del file sia nella variabile $feed per PHP e strFeed per ASP.

PHP

Header("Content-Type: text/xml; charset=utf-8;");
echo($feed);

ASP

Response.ContentType = " text/xml "
Response.Write(strFeed)

La seconda alternativa consiste nel creare, attraverso il linguaggio lato server scelto, un file statico con il contenuto del feed, adottando le convenzioni per i file statici prima descritte.

Ti consigliamo anche