Pagine

13 novembre 2011

Come funzionano i link brevi e perché li voglio usare

Avete visto la nuova barra di navigazione dei post di aggiornamento sull'incidente di Fukushima? Se la risposta è no, allora vi consiglio di cliccare qui per dargli un'occhiata. Adesso che avete visto come è fatta (esclusivamente CSS3), posso svelarvi un segreto: non sarei mai riuscito a farla, in modo pratico ed efficiente se non ci fosse stato l'applicazione YOURLS, open source e gratuita, per costruire il proprio servizio di link brevi. Prima di spiegarvi il trucco dietro la nuova barra di navigazione, vorrei prendere l'occasione per spiegarvi come funzionano i servizio di accorciamento link dal punto di vista pseudo-tecnico. Se lo sapete già o non vi interessa (fate male!) passate pure al paragrafo successivo.

Come funzionano gli accorciatori di indirizzi

Prima di capire come funzionano, forse qualcuno si sta ancora domandando di cosa stiamo parlando. Avete in mente quegli indirizzi  tipo goo.gl/O2wV5 o bit.ly/hDrKWT o ancora tinyurl.com/839ozoa. Lo schema è sempre il solito: c'è un nome di dominio spesso seguito da un dominio di primo livello particolare in modo che l'intera stringa suoni famigliare se pronunciata e poi dopo la sbarra c'è una sequenza di numeri, lettere maiuscole e minuscole e simboli [1]. E' un qualcosa di assolutamente criptico, ma poco importa, perché se ci clicchi sopra vai a finire esattamente dove il creatore dell'indirizzo breve intendeva indirizzarvi.

Ma a cosa servono? Bella domanda. La risposta breve è che servono ad accorciare un indirizzo lungo, magari anche un centinaio di caratteri in qualcosa di più accessibile, anche se difficilmente vi metterete a copiare a mano un link breve perché il rischio di fare confusione nel riportare una lettera al posto di un'altra è troppo alta. Ci sono però delle situazione in cui un link breve è essenziale, pensate per esempio a twitter dove un link di 100 caratteri riempirebbe quasi interamente il vostro cinguettio. Altro esempio sono i commenti dei blog dove un link troppo lungo risulta di difficile lettura e spesso non viene interpretato come link perché supera la lunghezza di una riga.

Come funzionano è quasi più facile da spiegare rispetto a quello che servono. Quando un utente utilizza goo.gl per creare un indirizzo breve, viene creato un record in un database in cui vengono registrati l'indirizzo lungo e quello breve che viene generato casualmente. Nel momento in cui digitate l'indirizzo breve, diciamo goo.gl/O2wV5, il vostro browser invierà una richiesta al server goo.gl per la pagina O2wV5. Il server goo.gl cercherà nel database di cui sopra per la sequenza O2wV5 in modo da recuperare l'indirizzo lungo corrispondente. A questo punto il server genererà una pagina html semplicissima che contiene praticamente soltanto una riga di intestazione in cui si dichiara un errore particolare (301) che è equivalente di dire al browser che la pagina che cercava non è più qui, ma è stata spostata all'indirizzo indicato da quello lungo.

Per l'utente, il tutto è completamente trasparente. E' infatti il browser stesso ad interpretare il messaggio d'errore generato dal link breve e re-indirizzare il navigatore verso il porto di destinazione. A livello di implementazione è tutto piuttosto semplice, poche righe di codice per gestire il database con le coppie link brevi / link lunghi e poi alcune righe per generare la pagina d'errore. Poi ovviamente ci sono tutti i frizz & frill, come le statistiche con i grafici, la condivisione sui principali social networks, i widget e plugin da installare sulle varie piattaforme di blogging, ma il grosso è veramente riassumibile in poche righe di codice come quelle che seguono.

// Get URL From Database
$url = yourls_get_keyword_longurl( $keyword );

// URL found
if( !empty($url) ) {
 // Update click count in main table
 $update_clicks = yourls_update_clicks( $keyword );
 // Update detailed log for stats
 $log_redirect = yourls_log_redirect( $keyword );
 
 yourls_do_action( 'redirect_shorturl', $url, $keyword );

 yourls_redirect( $url, 301 );

// URL not found. Either reserved, or page, or doesn't exist
} else {

 // Do we have a page?
 if ( file_exists(YOURLS_PAGEDIR."/$keyword.php") ) {
  // Include YOURLS functions we've skipped, they might be of use
  require_once( YOURLS_INC.'/functions-html.php' );
  yourls_page($keyword);

 // Either reserved id, or no such id
 } else {
  yourls_do_action( 'redirect_keyword_not_found', $keyword );
         yourls_redirect( YOURLS_SITE, 302 ); 
 }
}
exit();

YOURLS e il mio piano di utilizzo link brevi

Il codice che vi ho postato qui sopra mica l'ho scritto io, è praticamente il cuore di YOURLS, un'applicazione gratuita e libera che ognuno può scaricare ed installare sul proprio server e avere il proprio servizio di accorciamento indirizzi. Ovviamente in caso di grossi traffici forse è meglio affidarsi ad un servizio professionale, ma è evidente che un servizio privato e completamente gestibile in autonomia offre dei vantaggi non trascurabili.

I requisiti per installare YOURLS sono veramente minimi, serve uno spazio web che sostanzialmente supporti PHP e MySQL. In pratica tutto quello che vi serve lo trovate registrandovi presso 000webhost che vi da tutto quello che vi serve pure gratis. L'installazione è banalissima e di fatto si riduce a compilare un file di configurazione molto semplice e ben documentato e dopo qualche minuto siete pronti a registrare il vostro primo link breve.

Dicevamo che YOURLS è consigliato solo per piccoli gruppi di utenti, meglio se come servizio privato e non aperto al pubblico, però ha alcune caratteristiche interessanti, prima fra tutte la possibilità di modificare a quale link lungo un link breve punta. Questa possibilità è assolutamente vietata nei servizi professionali e pubblici per ovvi motivi di phishing. Immaginatevi che dopo aver creato un link breve di una banca, questo venga modificato verso una pagina clone in cui ruba i dati che gli ignari utenti inseriscono. Ma se il servizio è privato e solo l'amministratore (cioè io) ha la possibilità di modificare il database, allora la cosa può diventare utile. E adesso vi spiego per che cosa...

Avete in mente gli articoli di aggiornamento che scriviamo su Fukushima? Uno potrebbe volere avere il link diretto all'ultimo articolo disponibile, caratteristica che non è disponibile in blogger, ma che diventa fondamentale se uno vuole scrivere una barra di navigazione come la nostra. Per questo motivo abbiamo creato un link breve (non troppo breve in effetti) che punta all'ultimo post di aggiornamento disponibile e ovunque piazzo questo indirizzo, so che non dovrò modificarlo più, perché mi basterà aggiornare il database per averlo aggiornato ovunque alla nuova destinazione. 

Non c'è trucco e non c'è inganno, solo buon uso della tecnologia!



[1] Esiste almeno una nota eccezione. Sono gli indirizzi brevi di dominio di primo livello .tk in cui è proprio il nome di dominio a contenere la sequenza di lettere e cifre e non c'è nessuna stringa dopo la sbarra. Vedi unico-lab.tk [ ]

Chiunque può lasciare commenti su questo blog, ammesso che vengano rispettate due regole fondamentali: la buona educazione e il rispetto per gli altri.

Per commentare potete utilizzare diversi modi di autenticazione, da Google a Facebook e Twitter se non volete farvi un account su Disqus che resta sempre la nostra scelta consigliata.

Potete utilizzare tag HTML <b>, <i> e <a> per mettere in grassetto, in corsivo il testo ed inserire link ipertestuali come spiegato in questo tutorial. Per aggiungere un'immagine potete trascinarla dal vostro pc sopra lo spazio commenti.

A questo indirizzo trovate indicazioni su come ricevere notifiche via email sui nuovi commenti pubblicati.

3 commenti:

  1. Allora puoi stare tranquillo. I nostri link brevi (unico-short.tk) sono privati, nel senso che solo gli amministratori del blog possono crearne di nuovi e sono usati solo per ragioni di servizio, come spiegavo nel post.

    In pratica mi permettono di avere un indirizzo che punta sempre verso l'articolo più aggiornato di una certa categoria in modo del tutto trasparente per l'utente. 

    Ti prego, non mettere in atto la tua minaccia!

    RispondiElimina

Chiunque può lasciare commenti su questo blog, ammesso che vengano rispettate due regole fondamentali: la buona educazione e il rispetto per gli altri.

Per commentare potete utilizzare diversi modi di autenticazione, da Google a Facebook e Twitter se non volete farvi un account su Disqus che resta sempre la nostra scelta consigliata.

Potete utilizzare tag HTML <b>, <i> e <a> per mettere in grassetto, in corsivo il testo ed inserire link ipertestuali come spiegato in questo tutorial. Per aggiungere un'immagine potete trascinarla dal vostro pc sopra lo spazio commenti.

A questo indirizzo trovate indicazioni su come ricevere notifiche via email sui nuovi commenti pubblicati.