HTTP / 2 yeni bir yoludur Web sitenizi daha hızlı yükleme mevcut HTTP sürümü ile ilişkili birçok verimsizliği ortadan kaldırarak. Bu konuda en büyük şey? Kalkmak ve koşmak için çok çaba harcamanıza gerek yok.

Yoksa sen?

HTTP / 2 nedir?

HTTP1 ve HTTP1.1 orijinal olarak geliştirildiğinde, web bugünkü duruma çok farklıydı. Web sitelerinin bugünden daha az kaynağı vardı (JavaScript dosyaları, CSS dosyaları, resimler). İnternete bağlantılar çok hızlı değildi ve kullanıcılar web sitesi yükleme hızıyla çok seçici olmadılar.

Bir site, bir yanıt göstermek için 3 saniyeden uzun sürdüğünde kaşın parmaklarını almaya başlar.

Bir web sitesinin tamamen durduğu için mutluydun. Yüklemenin yavaş olduğunu gizlice şikayet etmiş olabilirsiniz. Ama bunun hakkında gerçekten fazla bir şey yapamazsın. Bunun nedeni, yavaş yükleme süresinin genellikle kullandığınız web sunucusundan ve teknolojiden bağımsız olan faktörlerden kaynaklanmaktadır. Çoğunlukla ana sınırlayıcı faktör olan gerçek internet bağlantısıydı.

Bugün hızlı ileri. Büyük web sitesi yükleme süreleri milisaniyede ölçülür saniyeler yerine. Bir site, bir yanıt göstermek için 3 saniyeden uzun sürdüğünde kaşın parmaklarını almaya başlar. Bu tür bir durumda, HTTP'nin orijinal sürümleriyle ilişkili milisaniye olarak sayılan verimsizlikler gerçek bir fark yaratmaya başlar. Bu yüzden tartıştığınız çok makale var Web sitenizi nasıl daha hızlı hale getirebilirsiniz? . Çünkü milisaniye önemlidir.

Olarak bilinen HTTP, yeni sürümü HTTP / 2 HTTP'nin bilinen bilinen sorunlarını ele alır. Hedefleri, web'in daha önceden belirlenmiş olandan çok daha fazla CSS, JS ve resim dosyasıyla daha büyük ve daha büyük web sitelerine dönüştüğü için daha belirgin hale gelen bir takım sorunları ele almaktır.

Fakat HTTP1.x ile ilgili sorun nedir ve neden bu kadar hızlı çaba harcadık?

HTTP1.x'in sorunları

HTTP1.x bir dizi doğal sorunlara sahiptir. Aslında, onları sorunlardan kaçınmayalım. HTTP1.x, daha verimli olabileceği çeşitli yollara sahiptir.

  1. HTTP 1.x metin tabanlı: başlangıçta fikir, HTTP1.x'in tamamen okunabilir olması gerektiğinden tamamen metin tabanlı olmasıydı. Tanım gereği, tüm metin tabanlı protokoller, bunlarla ilişkili boşluk, bağlantı kopması, büyük harf kullanımı vb. Gibi verimsizliklere sahiptir.
  2. Herhangi bir anda yalnızca bir dosya aktarım yapıyor: Bu, HTTP'nin 1.x sürümleriyle ilgili en büyük sorunlardan biridir. Sadece bir seferde sadece bir paket teslim edebilecek bir teslimatçı olmayı hayal edin. Bir sonraki paketi teslim etmek için ihtiyaç duydukları her zaman üsse geri dönmek zorundalar.
  3. Bugünün web siteleri için yüzlerce talep gerekiyor: daha karmaşık temalara sahip olmak, web sitelerinin boyutunun ve kaynak sayısının artması anlamına geliyor. Ve her bir kaynağı yüklemek için gereken süredir. “Teslimatçı” nın her seferinde üsse geri dönmesi gerektiğini hatırlayın, aynı anda birden fazla dosya aktaramazlar.
  4. Her bağlantı ağır bir teknik işlemdir: Yüzlerce bağlantı gerektiğinden, ciddi yükü biriktirmeye başlar. Milisaniye cinsinden ölçülen yükleme süresi ile, yüzlerce kaynak için bir bağlantı oluşturmak için gereken birleşik süre çok önemli olmaya başlar.

Çoğu zaman web tasarımcıları bu verimsizlikleri azaltmak için belirli önlemler uygulamak zorunda kaldılar. CSS sprite, minification ve dosyaların birleştirilmesi gibi geçici çözümler, web sitelerinin yüklenmesiyle ilgili sorunların üstesinden gelmek içindir.

Bunlar - özünde - düzeltmeler yerine geçici çözümler.

HTTP / 2, HTTP1.x sorunlarını nasıl çözer?

HTTP / 2 tasarlanmış ve evrimleşmiştir SPDY , tasarlanmış bir protokol Google web 2x daha hızlı yapmayı amaçladı. HTTP sorunlarını aşağıdaki şekilde ele alır

  1. HTTP / 2, insanlar tarafından değil, makineler (web tarayıcınız ve web sitenizin web sunucusu) tarafından tüketilmek üzere tasarlanmıştır . Metinden ziyade ikilidir, onu daha verimli hale getirir. Verilerin aktarılması ve ayrıştırılması ikili protokoller kullanılarak daha hızlıdır.
  2. Aynı bağlantıda aynı anda birden çok dosya aktarılabilir . Düzeltmeler, aynı bağlantı üzerinden kaynak aktarımı yapabilmeniz için uygulandı. Her seferinde yeni bir bağlantı açmak zorunda kalmak yerine (tedarikçimiz üsse geri dönüyor), tüm kaynaklar aynı bağlantı üzerinden taşınabilir (bizim teslimatçı her şeyi bir minibüse döker ve her şeyi tek seferde alır).
  3. Sunucu tarafından istenecek dosyaları göndermek için sunucu itin. HTTP1.x'de, web sunucusunun gerektirdiği kaynaklar için soran web tarayıcısıdır. HTTP Sunucusu Basma (HTTP / 2'nin bir parçası olarak uygulanır), sunucunun, web tarayıcısının ihtiyaç duyacağını bildiği kaynakları göndermeye başlamasına olanak tanır. Örneğin, sunucunun tarayıcıya yine de ihtiyaç duyacağı CSS, JS ve diğer kaynak dosyalarını sormasını beklememesini sağlayabilirsiniz.
  4. HTTP paket Üstbilgisi ve diğer en iyileştirmeler - bunlar aktarımların gerçek verimliliğini artırmak için tasarlanmış teknik geliştirmelerdir

HTTP2'yi etkinleştirmek için ne gereklidir?

Şifrelenmemiş bağlantılar üzerinden HTTP / 2'yi desteklemeyen web sitesi sahipleri, web siteleri için HTTP'lerin uygulanmasına güçlü bir şekilde bağlıdırlar.

Makalenin en başında, HTTP / 2'yi etkinleştirmek için sondan çok fazla çaba harcamanız gerektiğini söyledik. HTTP / 2'nin etkinleştirilmesi, web sunucusu düzeyinde yapılması gereken bir şeydir. Apache, Nginx, IIS ve diğer büyük web sunucuları gibi çoğu web sunucusu zaten HTTP / 2 desteğine sahiptir.

Kendi web sunucunuzu çalıştırırsanız, sadece HTTP / 2 kütüphanelerini kurmanız ve etkinleştirmeniz gerekir. Web siteniz bir barındırma şirketiyle barındırılıyorsa, web sunucusunun HTTP / 2 için zaten etkin olup olmadığını şirkete danışın.

Yakalayış? Güvenli Sertifikalar

Belki de şeyler doğru olmak için çok iyiydi. Web sunucularının zaten HTTP / 2'yi nasıl tamamen desteklediğini tartıştık.

Çoğu büyük web tarayıcısı da HTTP / 2'yi tamamen destekler. Bununla birlikte, şifrelenmiş modda yalnızca HTTP / 2'yi desteklemeyi seçtiler. Bunun nedeni, tüm web üzerinde HTTPS'yi (şifrelemeyi) etkinleştirmek için güçlü bir hareketin olmasıdır. Gibi girişimler HTTPS Her Yerde Tüm web sitelerinde HTTPS gereksinimini güçlü bir şekilde zorlar.

Şifrelenmemiş bağlantılar üzerinden HTTP / 2'yi desteklemeyen web sitesi sahipleri, web siteleri için HTTP'lerin uygulanmasına güçlü bir şekilde bağlıdırlar.

Elbette bu mutlaka kötü bir şey değil. HTTPS'yi uygulamak önemli güvenlik ve gizlilik avantajlarına sahiptir. Şirketler bir araya gelerek Sertifika Yetkilisi kuruyor Şifreleyelim ücretsiz sertifikalara izin vermek için, bir sertifika edinme ve HTTPS uygulamasının genel maliyeti çok daha ucuz olur. Bu, bir süre öncesine kadar nispeten pahalıydı.

HTTPS'yi uygulamak, gerekli düşünceyi vermeden yapmanız gereken bir şey değildir. Bunu muhtemelen güvenilir web sitesi geliştiricinizle veya yeterli teknik uzmanlığa sahip biriyle tartışmak isteyebilirsiniz. Çoğu zaman, hosting firmanız bu konuda size rehberlik edebilmelidir.

Elbette HTTPS'yi uygulamanız şiddetle önerilir. Ek güvencenin yanı sıra, HTTP / 2'yi etkinleştirip web sitenizi daha hızlı hale getirme olanağına sahip olacaksınız. Kazan-kazan durumu diyoruz.

Diğer optimizasyon teknikleri hala gerekli mi?

Evet ve hayır.

Web isteklerini azaltmaya yönelik belirli optimizasyonlar gereksiz hale gelir. Siteniz JS, CSS ve diğer dosyaları "birleştirmek" için hesaplama süresiyle karşı karşıyaysa, bu aslında bir genel gider maliyeti haline gelmiştir. Yukarıda belirtilen verimsizliklere hitap eden "boşa harcanan" zaman artık gerekli değildir.

Öte yandan, önbellekleme, kaynakların boyutunun küçültülmesi, bir CDN üzerinden içerik aktarımı, büyük bir barındırma sunucusu seçilmesi ve farklı verimsizlik türlerini ele alan diğer optimizasyonlar gibi bu tür optimizasyonlar yerinde kalmalıdır.

HTTP / 2 ile ilgili en önemli şey sadece web sitenizin daha hızlı yüklenmesini sağlamak değil, aynı zamanda web sitenizi daha güvenli hale getirmeniz için sizi zorluyor. Her ikisinin de avantajları olduğuna dair bir tartışma yok. HTTP / 2, tüm web’i daha hızlı hale getirmenin bir sonraki adımıdır. Hepimiz bunun bir parçası olalım ve bunu gerçekleştirelim.