HTTP2 per front-end web developers

HTTP2 significherà un cambiamento nel modo in cui progetteremo siti web. Le migliori pratiche di HTTP1 sono dannose in un mondo HTTP2.
HTTP2 per front-end web developers

Specifiche sulla traduzione

Di seguito la traduzione dell’articolo “HTTP2 for front-end web developers“.

HTTP1 è lento e inefficiente per la maggior parte dei casi d’uso sul web di oggi.

HTTP1

HTTP1.x è la versione di HTTP che noi tutti conosciamo. E’ un vecchio protocollo progettato senza sapere cosa sarebbe diventato in seguito il world wide web. Non sarà più efficiente svolgere il lavoro, perchè quello che noi chiediamo è un bel pò più complesso per il quale è stato progettato.

Per raggiungere siti web con HTTP1 in un tempo accettabile abbiamo sviluppato una serie di tecniche, veramente hack, per guadagnarsi prestazioni accettabili da questo vecchio protocollo. Sono:

  • Spriting: Creare un’unica immagine e mostrare con il CSS solo la parte che interessa.
  • Concatenazione: Prendere più css o file js e inserirli in un unico file di grande dimensione.
  • Servire le risorse da un dominio libero da cookie.
  • Sharding: Creazione di diversi domini o sottodomini per ospitare attività come le immagini.

I primi due punti hanno lo scopo di evitare una molteplicità di richieste HTTP.
Una richiesta in HTTP1 è una cosa molto costosa e richiede molto tempo, ciascuna query può inoltre essere caricata insieme ai cookie, che sono privi di compressione. E’ più veloce caricare molte cose insieme ed ottenere il risultato in colpo solo che richiedere risorse continuamente.

La terza tecnica è utilizzata per ridurre il tempo richiesto per ottenere attività; i cookie se impostati devono essere inviati al dominio con ogni richiesta – che aggiunge molto spazio sprecato sulla banda. Se le risorse sono in un dominio diverso che non utilizza cookie (quindi le richieste ne sono prive) tutto risulterà un pò più veloce.

L’ultima tecnica, lo sharding, è perchè i browser utilizzati consentono solo due richieste HTTP simultanee per dominio. Se si crea un nuovo dominio per alcune risorse si raddoppia quindi la quantità di connessioni simultanee del browser, anche se in realtà questa frammentazione non è stata molto utile negli ultimi due anni perchè i creatori di browser hanno deciso che limitare solo a due richieste è una vera e propria sciocchezza.

HTTP2

HTTP2 è quasi reale, si basa su SPDY e rende tutto molto più efficiente. Significa anche che tutte le pratiche di esecuzione viste fino ad ora con HTTP1 saranno nocive perchè renderanno un sito HTTP2 più lento.

HTTP2 riduce il costo di richieste multiple per via di alcune tecniche:

  • E’ possibile lasciare la connessione aperta per periodi molto lunghi quindi non è necessario effettuare diverse richieste come HTTP1.
  • HTTP2 a differenza di HTTP1 utilizza anche la compressione, e quindi la dimensione è efficacemente più piccola e più veloce.
  • Multiplex HTTP2: È possibile inviare e ricevere più cose nello stesso momento e sulla stessa connessione.

Tutto questo significa che non sono più necessarie le vecchie tecniche HTTP1 che faranno solo rallentare le cose. Inoltre si può mettere a rischio la pagina visualizzata caricando attività non necessarie come lo spriting e la concatenazione, lo sharding, invece, invoca ricerche DNS che rallentano ulteriormente.

In termini brevi, quando si genera il front-end di un sito web che sarà servito su HTTP2 – è necessario assicurarsi che non si stiano utilizzando tecniche di tipo HTTP1 che andranno a danneggiare il progetto.

Search
Tags
Seleziona rubrica
Seleziona rubrica
Codice Github