Freigeben über


“2” Sayısının Önemi

Çoğumuz bir web sitesinden birden fazla dosya indirmeye çalışmışızdır. Eğer aynı anda ikiden fazla dosya indirmeye çalışırsanız, eş zamanlı olarak sadece iki tanesinin başladığını, ancak biri bittikten sonra üçüncü dosyanın inmeye başladığını görmüşsünüzdür. Bu sadece Internet Explorer’a özgü bir durum değildir. Tüm tarayıcılarda bu tür bir kısıtlama vardır: Bir web sitesine eş zamanlı olarak 2 ve yalnız 2 bağlantı açılır.

Neden bir değil de iki? Bizim tek parça olarak gördüğümüz web sayfaları aslında pek çok bileşenden oluşur: Sayfanın HTML kodu, sayfadaki görseller, script dosyaları, CSS dosyaları... Örneğin https://www.microsoft.com/turkiye/ adresine girdiğinizde toplam 16 farklı dosya indirilir. Bu rakam bazı sayfalarda 100’lere kadar çıkabilir. Eğer sunucuyla tarayıcı arasında sadece bir TCP bağlantısı açılırsa, bu dosyaların birer birer indirilmesi gerekirdi. Bu da sayfanın tamamının yüklenmesini ve kullanıcıya gösterilmesini ciddi oranda geciktirirdi.

Peki neden üç değil de iki? Eğer bir web sitesinden istekte bulunan her istemcinin 3 veya daha fazla TCP bağlantısı açmasına izin verilseydi, web sunucuları çok daha güçlü donanımlarla çalışmak zorunda kalırdı. Bu nedenle, 2, en “optimum” değer olarak genel kabul görmüş ve uygulanmıştır.

.NET UYGULAMALARI AÇISINDAN “2” SAYISI

Yukarıda bahsettiğim bağlantı sayısı kısıtlaması, tam olarak aynı şekilde .NET uygulamaları için de geçerlidir. Yani, bir .NET uygulamasından bir web sitesine veya bir web servisine istekte bulunuyorsak, o uygulama sadece 2 bağlantı açacaktır. Eğer .NET uygulamamız “Windows forms” uygulaması ise bu sorun olmayacaktır. Ancak eğer uygulamamız bir web uygulaması veya “Windows servis“ uygulaması ise, yani aynı anda onlarca, belki yüzlerce istek üzerinde çalışılıyorsa, işte o zaman sorun olacaktır.

Internet Explorer için bağlantı sayısını artırmak, belirli bir “registry key” ile mümkündür. .NET uygulamaları için ise bu daha da kolaydır: maxconnection

Bir web sitesinden/servisinden istekte bulunulan bir ASP.NET uygulamamız varsa, mutlaka “maxconnection” parametresini 2’den yüksek bir değere atamalıyız. Elbette bu rakamı atarken, bağlanacağımız uygulamayı da düşünmeliyiz. Ancak kabaca diyebilirim ki, bizim uygulamamızın çalıştığı makinedeki CPU başına 12 ila 20 gibi bir değer tanımlamak yeterli olacaktır.

Aşağıdaki linkte bu parametre ile ilgili detaylı bilgi bulabilirsiniz:

<connectionManagement> Element

CENK ISCAN