Condividi:
Facebook
Twitter
Google+
https://lnx.ingegnosi.it/hosting-aruba-e-compressione-gzip-dei-contenuti-statici-css-js.html
RSS

In questi giorni mi sono occupato di ottimizzare le performance di alcuni siti che ho realizzato in ASP.NET MVC. Mi ero già preoccupato di minificare e combinare insieme tutti i fogli di stile e i javascript inclusi nelle pagine. A seguito, però, di una verifica con l’estensione PageSpeed della web developer di Chrome mi sono reso conto che IIS, anche se non per tutti i siti, non effettuava la compressione Gzip dei css e js come si può evincere dal questo snapshot: nel response header della richiesta http per un file css non compariva l’intestazione Content Enconding: gzip che speravo di trovare e che avrebbe evidenziato il comportamento voluto da parte di IIS

.Screenshot001rid

 

Ho iniziato quindi a ricercare una possibile soluzione e googlando un po’ ho trovato qualcuno che suggeriva di inserire questa sezione nel Web.config dell’applicazione

 

Purtroppo però questa soluzione non va bene in medium trust, in quanto questa sezione del Web.config può essere inserita solo se si hanno i permessi e così non è in medium trust. Se si tenta di farlo viene generata una eccezione HTTP Error 500.19 – Internal Server Error quando IIS è in funzionamento .NET 4 e Integrated Pipiline. Ho quindi inizialmente contattato l’assistenza di Aruba aprendo un ticket e, dopo una dettagliata descrizione del problema, mi hanno così risposto:

“Gentile cliente,
le confermo che sui nostri server di hosting non è possibile utilizzare la compressione degli url. E’ necessario mantenere commentata tale riga di codice per  il corretto funzionamento del sito.”

Ho cercato allora di aggirare l’ostacolo e trovare una soluzione alternativa pensando che fosse possibile effettuare la compressione a livello di applicazione creando un modulo HTTP Handler. Mi sono messo alla ricerca nel web e ho trovato diverse possibili soluzioni. Nessuna andava bene, se applicata alla lettera, ma dopo diversi tentativi,  ne ho ricavata una mia arrivando al risultato sperato. Ho creato questo HTTPHandler:

Ad ogni richiesta HTTP che arriva all’applicazione controlla che nel Request Header ci sia nel “Accept-Encoding” la parola gzip e in quel
caso effettua la compressione dell’URL relativo. Fatto questo ho inserito le seguenti sezioni nel Web.config:

 

e ho verificato con web developer di Chrome che tutto funzionasse:

Screenshot002

Condividi:
Facebook
Twitter
Google+
https://lnx.ingegnosi.it/hosting-aruba-e-compressione-gzip-dei-contenuti-statici-css-js.html
RSS