Web Sunucuları Her Birinde Sadece Bir Web Sitesi Tutuyor mu?
Etki alanı adlarının, IP adreslerinin, web sunucularının ve web sitelerinin hepsinin nasıl birbirine uyup uymayacağını öğrenmeye başladığınızda, zaman zaman kafa karıştırıcı veya zorlayıcı olabilir. Bu kadar sorunsuz çalışmak için her şey nasıl ayarlandı? Bugünün Süper Kullanıcı Soru-Cevap yazısında meraklı bir okuyucunun sorularına cevap.
Bugünün Soru ve Cevap oturumu bize topluluk tarafından yönlendirilen bir soru-cevap web sitesi grubu olan Stack Exchange'in bir alt birimi olan SuperUser'ın izniyle geliyor..
Fotoğraf Rosmarie Voegtli'nin (Flickr) izniyle.
Soru
SuperUser okuyucu user3407319, web sunucularının her biri yalnızca bir web sitesine sahip olup olmadığını bilmek ister:
DNS hakkında ne anladığımı ve bir etki alanı adını bir web sitesinin depolandığı web sunucusunun IP adresiyle ilişkilendirmek temelinde, bu her web sunucusunun yalnızca bir web sitesini tutabileceği anlamına mı geliyor? Eğer web sunucuları birden fazla web sitesine sahipse, istediğim web sitesine herhangi bir problem yaşamadan veya karışıklık olmadan erişebilmem için her şey nasıl çözülür??
Web sunucuları her biri yalnızca bir web sitesine mi sahip, yoksa daha fazlasını da içeriyor mu??
Cevap
SuperUser yazarı Bob, bizim için cevabı var:
Temel olarak, tarayıcı HTTP isteğinde etki alanı adını içerir, böylece web sunucusu hangi etki alanının istendiğini bilir ve buna göre yanıt verebilir.
HTTP İstekleri
Tipik HTTP isteğiniz şöyle:
1. Kullanıcı, http: // host: port / path formunda bir URL sağlar..
2. Tarayıcı, URL'nin ana bilgisayar (etki alanı) bölümünü ayıklar ve ad çözümlemesi olarak bilinen bir işlemde bir IP adresine (gerekirse) dönüştürür. Bu çeviri DNS üzerinden gerçekleşebilir, ancak zorunlu değildir (örneğin, yaygın işletim sistemindeki yerel ana bilgisayar dosyaları DNS'yi atlar).
3. Tarayıcı, belirtilen bağlantı noktasına bir TCP bağlantısı açar veya varsayılan olarak bu IP adresindeki 80 numaralı bağlantı noktasına.
4. Tarayıcı bir HTTP isteği gönderir. HTTP / 1.1 için şöyle görünür:
Ana bilgisayar başlığı standart ve HTTP / 1.1'de gereklidir. HTTP / 1.0 özelliğinde belirtilmedi, ancak bazı sunucular yine de destekliyor.
Buradan, web sunucusu, yanıtın ne olması gerektiğine karar vermek için kullanabileceği birkaç bilgi parçasına sahiptir. Tek bir web sunucusunun birden fazla IP adresine bağlanmasının mümkün olduğunu unutmayın..
- İstenen IP adresi, TCP soketinden (istemcinin IP adresi de mevcuttur, ancak bu nadiren kullanılır ve bazen engelleme / filtreleme için)
- TCP soketinden istenen port
- Talep edilen ana bilgisayar adı, HTTP isteğindeki tarayıcı tarafından ana bilgisayar başlığında belirtildiği şekilde
- İstenen yol
- Diğer başlıklar (çerezler vb.)
Farkında göründüğünüz gibi, en yaygın paylaşılan barındırma kurulumu bu günlerde birden fazla web sitesini tek bir IP adresine yerleştirir: bağlantı noktası birleşimi, sadece ana bilgisayarı web siteleri arasında ayırt etmek.
Bu, Apache ülkesinde Ad Tabanlı Sanal Konak olarak bilinirken, Nginx bunları Sunucu Bloklarında Sunucu Adları olarak adlandırır ve IIS Sanal Sunucu'yu tercih eder..
HTTPS Hakkında Ne?
HTTPS biraz farklı. Her şey TCP bağlantısının kurulmasıyla aynıdır, ancak bundan sonra şifreli bir TLS tüneli kurulmalıdır. Hedef, istekle ilgili hiçbir bilgiyi sızdırmamak.
Web sunucusunun gerçekten bu etki alanına sahip olduğunu doğrulamak için, web sunucusunun güvenilir bir üçüncü tarafça imzalanmış bir sertifika göndermesi gerekir. Tarayıcı daha sonra bu sertifikayı istediği etki alanı ile karşılaştıracak.
Bu bir sorun sunuyor. Web sunucusu, HTTP isteği alınmadan önce yapılması gerekiyorsa hangi ana bilgisayar / web sitesinin sertifikasını göndereceğini nasıl biliyor??
Geleneksel olarak bu, HTTPS gerektiren her web sitesi için özel bir IP adresine (veya bağlantı noktasına) sahip olarak çözülmüştür. Açıkçası, biz IPv4 adresleri tükeniyor gibi bu sorun haline gelmiştir.
SNI (Sunucu Adı Gösterimi) girin. Tarayıcı artık TLS görüşmeleri sırasında ana bilgisayar adını geçirir, bu nedenle web sunucusu bu bilgileri doğru sertifikayı gönderecek kadar erken alır. Web sunucusu tarafında, yapılandırma HTTP sanal ana makinelerinin nasıl yapılandırıldığına çok benzer.
Dezavantajı, ana bilgisayar adının şimdi şifrelemeden önce düz metin olarak geçirilmesi ve esasen sızdırılmış bilgi olmasıdır. Bu genellikle kabul edilebilir bir takas olarak kabul edilir, ancak ana bilgisayar adı normal olarak zaten bir DNS sorgusuna maruz kaldığı düşünüldüğünde.
Ne Sadece IP Adresine Göre Bir Web Sitesi İstiyorsanız?
Web sunucusu, istediğiniz belirli bir ana bilgisayarı bilmediğinde, web sunucusunun uygulanmasına ve yapılandırmasına bağlıdır. Genellikle, bir ana bilgisayarı açıkça belirtmeyen tüm isteklere yanıt verecek bir "varsayılan", "tümünü yakala" veya "geri çekilme" web sitesi vardır.
Bu varsayılan web sitesi kendi bağımsız web sitesi olabilir (genellikle bir hata mesajı gösterir) veya web sunucusu yöneticisinin tercihlerine bağlı olarak web sunucusundaki diğer web sitelerinden biri olabilir.
Açıklamaya eklemek için bir şey var mı? Yorumlarda ses kesiliyor. Diğer teknoloji meraklısı Stack Exchange kullanıcılarından daha fazla cevap okumak ister misiniz? Burada tüm tartışma konusuna göz atın.