2016-03-13 27 views
6

Vorrei portare la vostra attenzione a qualcosa che ripenso per giorni. Le nuove funzionalità e l'impatto del protocollo HTTP/2 per lo sviluppo web. Vorrei anche fare alcune domande correlate, perché la mia pianificazione annuale sta diventando meno accurata a causa di HTTP/2.Impatto del protocollo HTTP2 sullo sviluppo web?

Poiché HTTP/2 utilizza un singolo, multiplexed connection, anziché più connessioni nelle tecnologie HTTP1.x domain sharding non saranno più necessarie.

Con HTTP/1.x potresti aver già inserito file in domini diversi per aumentare il parallelismo nel trasferimento di file al browser web; le reti di dominio del contenuto (CDN) lo fanno automaticamente. Ma non aiuta - e può far male - prestazioni sotto HTTP/2.

Q1: HTTP/2 ridurrà al minimo la necessità di CDN?


file di codice concatenare. I blocchi di codice che verrebbero normalmente gestiti e trasferiti come file separati sono combinati in uno. Il browser quindi trova ed esegue il codice necessario all'interno del file concatenato secondo necessità.

Q2. HTTP/2 eliminerà la necessità di concatenare file con estensioni simili (css, javascript) e l'uso di grandi strumenti Grunt e Gulp per farlo?


D. Inoltre, al fine di semplificare e mantenere la domanda più compatto, vorrei chiedere abbastanza generale quello che potrebbe essere altri impatti di HTTP/2 in materia di sviluppo web come si può prevedere?

+0

Guardare [qui] (https://blog.cloudflare.com/http-2-for-web-developers/) per esempio. CDN - sì, minimizzando - sì, concatenazione - no (sì solo per risorse mini-size). Non dimenticare di impostare le intestazioni di cache HTTP per ottimizzare la cache (i CDN lo fanno automaticamente). Prova a utilizzare ** URL immutabili ** (l'URL può includere la versione della risorsa e differire se la risorsa è nuova) per contenuti non dinamici (come file JS/CSS, immagini e così via). – Oleg

risposta

2

Q1: HTTP/2 minimizzerà la necessità di CDN?

Sposterà un po 'l'equilibrio, a condizione di utilizzare il software giusto. Parlo di equilibrio perché i CDN costano tempo e tempo di gestione.

  • Se si stanno utilizzando CDN per scaricare il traffico, sarà comunque necessario che scarichino il traffico.
  • Se si è un sito Web di dimensioni ridotte (e la maggior parte dei siti Web sono, in termini numerici), si avrà meno di un motivo per utilizzare un CDN, poiché la latenza può essere nascosta in modo abbastanza efficace con HTTP/2 (purché venga distribuito correttamente). HTTP/2 è persino migliore di SPDY e controlla this article per un caso d'uso relativo a SPDY.

  • Inoltre, la maggior parte dei contenuti di terze parti che incorporiamo nei nostri siti utilizza già CDN.

Q2. HTTP/2 eliminerà la necessità di concatenare file con estensioni simili (css, javascript) e l'uso di grandi strumenti Grunt e Gulp per farlo?

Sfortunatamente no. Non è necessario concatenare le cose, a meno che i file che si stanno consegnando siano estremamente piccoli, ad esempio qualche centinaio di byte. Tutto il resto è ancora rilevante, incluso il minisito e adding those ugly query strings for cache busting.

Q3. Inoltre, al fine di semplificare e mantenere la domanda più compatta, chiederei in generale quali potrebbero essere gli altri impatti di HTTP/2 sullo sviluppo del Web come puoi prevedere?

Questa è una domanda complicata. Da una parte, l'HTTP/2 arriva in un momento in cui il web è maturo e gli sviluppatori hanno interi stack di cose di cui occuparsi. HTTP/2 può essere visto come un piccolo pezzo da cambiare in modo tale che l'intero stack non si sgretoli. In effetti, posso immaginare che molte squadre vendano HTTP/2 alla direzione in questo modo ("Non sarà un problema, lo promettiamo!").

Ma da un punto di vista tecnico, HTTP/2 consente migliori flussi di lavoro di sviluppo. Ad esempio, la natura di multiplexing di HTTP/2 significa che la maggior parte dei contenuti di un sito può essere servita su una singola connessione, consentendo alcuni server to learn about interactions between assets semplicemente osservando i comportamenti del browser. Le informazioni possono essere utilizzate insieme ad altre funzionalità di HTTP/2 e al Web moderno (in particolare, HTTP/2 PUSH e le intestazioni pre-aperte) per nascondere un sacco di latenza. Pensa a quanto lavoro può salvare gli sviluppatori interessati alle prestazioni.

2

Q1: HTTP/2 minimizzerà la necessità di CDN?

No. I CDN servono principalmente a trovare il contenuto vicino all'utente in base alla posizione geografica. Più vicino sei al server, più velocemente otterrai il contet.

Q2. HTTP/2 eliminerà la necessità di concatenare file con estensioni simili (css, javascript) e l'uso di grandi strumenti Grunt e Gulp per farlo?

La concatenazione è solo una parte delle cose di uno strumento come Grunt/Gulp. Linting, conversioni, runnings test sono altre cose per cui avresti ancora bisogno di uno strumento. Così rimarranno. In termini di concat, si dovrebbe idealmente allontanarsi dalla creazione di un singolo grande file concat per tipo e passare alla creazione di file concatenati più piccoli per modulo.

Q3. Inoltre, al fine di semplificare e mantenere la domanda più compatta, chiederei in generale quali potrebbero essere gli altri impatti di HTTP/2 sullo sviluppo del Web come puoi prevedere?

L'idea generale è HTTP/2 non apporterà un enorme cambiamento al modo in cui sviluppiamo le cose poiché il suo livello di protocollo cambia. Gli sviluppatori rimuovono idealmente le ottimizzazioni (come la compattazione, il sharding) che non sono tecniche di ottimizzazione con http/2