Azure App Service epeydir HTTP 2.0’ı destekliyor. HTTP/1.1’in ise en büyük ilerlemesi, art arda birden fazla isteğe hizmet vermek için kalıcı bağlantıların kullanılmasıydı. HTTP/2’de, birden fazla eş zamanlı isteğe hizmet vermek için kalıcı bir bağlantı kullanılabilir zaten v1 eskimeye başlamişti hadi hep beraber app service HTTP2 isteği nasil atacağimizi öğrenelim
ilk aşama App Serviceden HTTP2 desteğini açmak olacak
Go to > App Service > Configuration > Enable HTTP 2.0
ikinci aşama ise ihtiyacimiza göre (.net core kullaniyorum) .net core application consolda bir uygulama yazmak web request atacak basit bi application yazacağim
var client = new HttpClient() { BaseAddress = new Uri("https://<>.azurewebsites.net") };
Console.WriteLine("Sending HTTP 2.0 Request.");
// HTTP/2 request
using (var request = new HttpRequestMessage(HttpMethod.Get, "/") { Version = new Version(2, 0) })
using (var response = await client.SendAsync(request))
Console.WriteLine(response);
Burda http sınıfını default olarak ayarlaya bileceğimiz DefaultRequestVersion özelliğini görüyorsunuz
var SecondRequest = new HttpClient()
{
BaseAddress = new Uri("https://<>.azurewebsites.net"),
DefaultRequestVersion = new Version(2, 0)
};
// HTTP/2 is default
using (var response = await SecondRequest.GetAsync("/"))
Console.WriteLine(response);
Kodu execute ettiğimizde (çalıştırdığımızda) aşağidaki gibi cevap dönemesi gerekiyor
Bu sayede HTTP/2 isteklerini Azure Application Service’te nasıl etkinleştireceğimizi ve nasıl istek atacağımızı gördük. Ancak yazılımcı arkadaşlar, maalesef eski alışkanlıklarını bırakamıyor ve hala HTTP/1.1’den devam ederek performans bekliyorlar. HTTP/2 trafiği genellikle bu tür performans ve trafik sorunlarının sebebini bulmakta zorlanan yazılımcılar için büyük bir rahatlama sağlar.
Genellikle bu tür durumlar, DevOps ekibinin ve middleware ekibinin müdahale ettiği noktalardır. İlk başta her şeyin yolunda olduğunu söylerler, ancak IT ekibi devreye girer. Buradaki IT ekibi, klasik IT uzmanlarından farklıdır tabii ki. HTTP isteklerine baktıklarında aşırı isteklerin geldiğini ve sistemlerin buna cevap veremediğini fark ederler.
Daha sonra yazılımcı arkadaşlarla küçük bir sohbet yaparlar ve HTTP isteklerini nasıl ve ne şekilde yaptıklarını konuşurlar. Sonra, neden hala HTTP/2 kullanmadıklarını sorarlar. Yazılımcı arkadaşlar şaşkınlıkla “aaa, öyle bir versiyon mu var?” diye sorarlar. Ancak HTTP/2’nin tek bir oturumda yüzbinlerce istek atabildiğini öğrenince, herkes mutlu bir sona kavuşur.
bununla ilgili kaynak olarak başvurabileceğimiz yine micoroft learn tarafinda çok faydali bilgi ve belgeler bulunmaktadır.