mod_pagespeed diventa stabile

Di - 20 November 2012 - in

Tra i software Open Source proposti da Google negli ultimi tempi, mod_pagespeed è probabilmente tra i piú interessanti, ed è sicuramente destinato a far risparmiare una quantità enorme di tempo agli sviluppatori web.

Da circa un mese è online la versione 1.0, dopo due anni di versioni beta, e la successiva è ora pronta come beta.

Vediamo di che si tratta. Mod_pagespeed è un modulo per Apache, il piú diffuso server web, per ottimizzare il modo in cui Apache serve le pagine, cosí da ottenere un caricamento molto piú veloce lato client.

Il software, di facile installazione (è già disponibile pacchettizzato da Google per Debian, Ubuntu, RedHat e Fedora, e utenti hanno già fatto pacchetti per molto altro, Windows compreso) consiste in una serie di filtri che il server applica alle pagine web prima di servirle, ottimizzando automaticamente ciò che tipicamente dovrebbe ottimizzare lo sviluppatore del sito web, e permettendo al browser del visitatore un piú efficiente utilizzo della cache.

Uno dei grandi problemi dei web designer, ad esempio, è la modularizzazione dei fogli CSS da utilizzare: piú se ne usano, piú sono comodi da usare. Allo stesso tempo, però, molti CSS rischiano di rallentare il caricamento della pagina. Di solito, si perde moltissimo tempo per creare sistemi che, lato server, si occupino di unire i CSS tra loro. Questa operazione verrà fatta in automatico da mod_pagespeed, unendo tutti i fogli in uno, e inserendo nel nome del foglio virtuale cosí creato la sua somma MD5 e impostando il tempo di caching ad un anno. In questo modo, il browser del visitatore scaricherà i CSS una sola volta l’anno, a meno che lo sviluppatore del sito non li modifichi, cambiando cosí l’MD5 e facendo capire al browser che deve riscaricare tutto di nuovo.

Un altro esempio di filtro è quello che si applica alle immagini. Chiunque abbia avuto a che fare con siti che contengono fotografie o simili, sa quanto sia noioso ogni volta creare immagini di dimensioni diverse per thumbnail ed anteprime varie. Un filtro di mod_pagespeed si occupa di leggere quanto l’immagine vada mostrata grande, da CSS e HTML, e di generare automaticamente la versione piccola. Inoltre, l’immagine viene ottimizzata a livello di definizione, spesso troppo alta per un monitor, viene alleggerita dei metadati inutili, e viene (se il browser richiedente supporta il formato) convertita in WebP, un formato Open Source per la trasmissione di immagini su web, che la comprime molto. Questo permette di realizzare siti che utilizzano WebP senza dover discriminare il browser “a mano” analizzando la richiesta, e senza dover fare piú versioni della stessa immagine. Anche nei nomi di file delle immagini viene impostato un MD5, che permette di mantenerle in cache per un anno se non vengono modificate.

Sono disponibili moltissimi altri filtri, ben documentati e testabili sul sito web di mod_pagespeed. I filtri sono attivabili uno ad uno, e Google ha raggruppato tutti quelli di base ed estremamente stabili in modo da attivarli di default (anche se resta possibile disattivare tutto e attivare solo ciò che si desidera). L’attivazione si fa dalla configurazione del server, ma è possibile anche richiedere via header http che vengano attivati specifici filtri per testarli prima di configurare tutto.

Il software vedrà presto migliorato il sistema di caching lato server attraverso l’utilizzo di memcached. Memcached, noto sistema di caching Open Source, è già presente sul ramo beta di mod_pagespeed, e permette a chi gestisce siti che risiedono parallelamente su piú server l’utilizzo di una singola area di cache: in questo modo, se un server crea ad esempio le miniature per un’immagine, tutti gli altri server le avranno rapidamente a disposizione.

Mod_pagespeed non è in realtà altro che un wrapper per rendere utilizzabili ad Apache un set di librerie di Google, chiamate PageSpeed Optimization Libraries, che sono in realtà indipendenti da Apache (sono state create in parallelo per Apache e per un server proprietario di Google). Tali librerie hanno delle API ben documentate, che permettono a chiunque sia interessato di scrivere moduli per web server diversi da Apache, o che utilizzino sistemi di cache diversi da memcached, ad esempio quelli preesistenti nell’architettura su cui si vogliono far girare le librerie.

Già diversi hoster, soprattutto statunitensi, integrano il modulo e permettono di attivarlo tramite il pannello di controllo.

Insomma, si va verso un web sempre piú veloce e meno affamato di banda per chi naviga in Internet, mentre per gli sviluppatori inizia un’epoca nella quale possono finalmente occuparsi della logica e dei contenuti di un sito web, senza dover pensare a come ottimizzarlo per renderlo rapidamente scaricabile e allo stesso tempo facilmente modificabile.

Un bel grazie a Google, che ancora una volta ha reso liberamente disponibile una tecnologia creata per i suoi stessi sistemi. Chiunque voglia collaborare ha a disposizione una mailing list,  e vedo che Google è particolarmente attiva anche a considerare le richieste fatte su StackOverflow.

Via | Google Developers Blog

Leave a Reply

Lorenzo Breda Articolo scritto da

Studente di Informatica a Roma, si occupa di programmazione web sopratutto lato server, e di accessibilità del web. Utilizza e ama Debian GNU/Linux, e si interessa di fisica, fumetto, trekking e fotografia (gli ultimi due possibilmente abbinati). Collabora con Googlab da aprile 2012.

Contatta l'autore

Previous post:

Next post: