Önceki bir yazıda, tek bir bağlantı kullanarak HTTP2 ve HTTP1 performansı arasında bir karşılaştırma gösterdim (bkz. HTTP2 vs HTTP1 performansı). Bu yazıda, bir gecikme süresi (latency) ekleyerek HTTP2 ve HTTP1 arasında bir karşılaştırma göstereceğim ve gecikmenin HTTP protokolü isteklerini nasıl etkileyebileceğini göstereceğim.
Bir istemci bir istek yaptığında, ağ koşullarına (trafik, sunucu uzaklığı...) bağlı olarak az veya çok bir gecikme vardır; gecikme HTTP 1.1 protokolünü çok etkiler, çünkü bir sürü istek göndermeniz gerekiyorsa, önce isteği göndermeli, sunucudan yanıt beklemeli, sonraki isteği yapmalı ve böyle devam etmelisiniz... elbette 1'den fazla bağlantı kullanabilirsiniz, ancak bu sunucudan daha fazla kaynak gerektirir ve iyi ölçeklenmez.
HTTP2 protokolü, tüm istekleri yapmak için tek bir bağlantı kullanır; bu nedenle gecikme daha az etkiler, işlenmeyi beklemeden birden fazla istek gönderebilirsiniz; böylece işlem çok daha hızlıdır.
HTTP2 Gecikme Testi
Gecikmenin HTTP/2'yi HTTP1'e karşı nasıl etkilediğini göstermek için ücretsiz HTTP2 Golang test sunucusunu kullanıyorum.
HTTP2 protokolünü kullanarak, yalnızca tüm istekleri sunucuya göndermeniz ve yanıtları asenkron olarak işlemeniz gerekir. İşlem çok hızlıdır ve 1 saniyeden az sürer.
HTTP1 protokolünde ise istekler birer birer gönderilir ve başka bir istek göndermeden önce sunucudan bir yanıt beklenmelidir; bu nedenle işlem yavaştır.

Aşağıdaki bağlantıdan windows için zaten derlenmiş bir sgcWebSockets demo örneğini indirebilirsiniz. Yalnızca farklı seçenekleri test edin ve her iki protokol arasındaki performansı karşılaştırın.
