Web Uygulamaları Temelleri: İstemci, Sunucu, HTTP, DNS

Günümüzde internet, hayatımızın ayrılmaz bir parçası haline geldi. Web siteleri ve uygulamalar, bilgiye erişimden alışverişe, sosyal etkileşimden eğlenceye kadar birçok alanda bize hizmet ediyor. Peki, bu web uygulamalarının arkasındaki temel yapı taşları nelerdir? Bu makalede, web uygulamalarının genel yapısını, istemci-sunucu mimarisini, HTTP/HTTPS protokollerini, DNS ve hosting gibi temel kavramları inceleyeceğiz. Web tarayıcılarının nasıl çalıştığını, statik ve dinamik web sayfaları arasındaki farkları öğreneceğiz. Ayrıca, basit bir HTML sayfası oluşturarak bu kavramları pratikte gözlemleme fırsatı bulacağız. Web geliştirmenin temellerini anlamak, internetin nasıl çalıştığına dair daha geniş bir bakış açısı kazanmamızı sağlayacaktır. Bu yolculukta, web’in karmaşık dünyasına adım atacak ve temel yapı taşlarını keşfedeceğiz. Hazırsanız, web uygulamalarının gizemli dünyasına doğru yelken açıyoruz!

Web Uygulamalarının Temel Yapısı: İstemci-Sunucu Mimarisi

Web uygulamaları, temel olarak istemci-sunucu (client-server) mimarisine dayanır. Bu mimaride, istemci (genellikle bir web tarayıcısı) sunucudan bir kaynak (web sayfası, resim, video vb.) talep eder ve sunucu bu talebe yanıt verir. İstemci, kullanıcının etkileşimde bulunduğu taraftır (örneğin, bilgisayarınızdaki Chrome, Firefox gibi tarayıcılar). Sunucu ise, web sitelerinin ve uygulamalarının barındırıldığı, güçlü bilgisayarlardır. Bu bilgisayarlar, istemcilerden gelen isteklere cevap vermek ve ilgili içeriği sunmak için özel olarak tasarlanmıştır.

İstemci-sunucu arasındaki iletişim, belirli kurallar ve protokoller çerçevesinde gerçekleşir. Bu protokollerin en önemlisi, HTTP (Hypertext Transfer Protocol) ve onun güvenli versiyonu olan HTTPS (Hypertext Transfer Protocol Secure) protokolleridir.

HTTP ve HTTPS Protokolleri: Web İletişiminin Temeli

HTTP, web tarayıcıları ve sunucular arasında veri alışverişini sağlayan temel protokoldür. Bir web sitesine erişmek istediğinizde, tarayıcınız sunucuya bir HTTP isteği gönderir. Bu istek, hangi sayfanın istendiği, tarayıcı türü gibi bilgileri içerir. Sunucu, bu isteği alır ve uygun yanıtı (örneğin, istenen HTML sayfasını) tarayıcıya geri gönderir.

HTTPS, HTTP’nin güvenli versiyonudur. HTTPS kullanıldığında, istemci ve sunucu arasındaki iletişim şifrelenir. Bu, özellikle hassas bilgilerin (kredi kartı numaraları, parolalar vb.) iletilmesi sırasında önemlidir. Şifreleme, üçüncü tarafların iletişimi dinlemesini veya değiştirmesini engeller. Günümüzde, web sitelerinin büyük çoğunluğu HTTPS kullanmaktadır. Bir web sitesinin HTTPS kullandığını, tarayıcınızın adres çubuğundaki kilit simgesinden anlayabilirsiniz.

DNS ve Hosting: Web Sitelerinin Adresi ve Barınma Alanı

DNS (Domain Name System), web sitelerinin alan adlarını (örneğin, google.com) IP adreslerine (örneğin, 172.217.160.142) çeviren bir sistemdir. Bu, tıpkı telefon rehberinin kişilerin isimlerini telefon numaralarına çevirmesi gibidir. DNS, kullanıcıların karmaşık IP adreslerini hatırlamak zorunda kalmadan, akılda kalıcı alan adlarını kullanarak web sitelerine erişmelerini sağlar.

Hosting ise, web sitelerinin dosyalarının ve veritabanlarının barındırıldığı hizmettir. Web sitenizin sürekli olarak erişilebilir olması için, bu dosyaların 7/24 çalışan güçlü sunucularda barındırılması gerekir. Hosting hizmeti, web sitenizin internet üzerinde yayınlanmasını sağlar. Farklı hosting türleri vardır (paylaşımlı hosting, VPS, dedicated server vb.), ve web sitenizin ihtiyaçlarına göre doğru hosting türünü seçmek önemlidir.

Web Tarayıcıları ve Çalışma Prensipleri: HTML, CSS ve JavaScript

Web tarayıcıları (Chrome, Firefox, Safari, Edge vb.), web sayfalarını görüntülemek için kullandığımız programlardır. Tarayıcılar, sunucudan gelen HTML, CSS ve JavaScript kodlarını yorumlayarak, kullanıcının görebileceği görsel bir arayüze dönüştürür.

  • HTML (Hypertext Markup Language), web sayfasının içeriğini ve yapısını tanımlar. Başlıklar, paragraflar, resimler, bağlantılar gibi öğeler HTML ile oluşturulur.
  • CSS (Cascading Style Sheets), web sayfasının görünümünü (renkler, yazı tipleri, düzen vb.) belirler. CSS, HTML içeriğini görsel olarak biçimlendirmek için kullanılır.
  • JavaScript, web sayfalarına etkileşim ve dinamizm katar. Kullanıcı eylemlerine yanıt vermek, animasyonlar oluşturmak, verileri işlemek gibi işlemler JavaScript ile yapılır.

Statik web sayfaları, her kullanıcı için aynı içeriği gösteren basit HTML dosyalarıdır. Dinamik web sayfaları ise, kullanıcının girdilerine veya diğer faktörlere (örneğin, tarih, saat, konum) göre değişen içerik sunar. Dinamik sayfalar, genellikle sunucu tarafında çalışan betik dilleri (PHP, Python, Ruby vb.) kullanılarak oluşturulur.

Basit Bir HTML Sayfası Örneği

Aşağıdaki basit HTML kodunu bir metin düzenleyicisine (örneğin, Notepad) yapıştırıp “index.html” adıyla kaydedin ve tarayıcınızda açın:

Bu kod, tarayıcıda “İlk Web Sayfam” başlığına ve “Bu basit bir HTML sayfasıdır.” paragrafına sahip bir web sayfası oluşturacaktır. Bu basit örnek, HTML’in temel yapısını göstermektedir.

Sonuç

Bu makalede, web uygulamalarının temel yapı taşlarını inceledik. İstemci-sunucu mimarisinin nasıl çalıştığını, HTTP ve HTTPS protokollerinin iletişimdeki rolünü, DNS ve hosting’in web sitelerinin adreslenmesi ve barındırılması için neden önemli olduğunu öğrendik. Ayrıca, web tarayıcılarının HTML, CSS ve JavaScript kodlarını nasıl yorumladığını ve statik ve dinamik web sayfaları arasındaki farkları gördük. Basit bir HTML sayfası örneğiyle, bu teorik bilgileri pratiğe dökmüş olduk.

Web geliştirme dünyası, bu temel kavramların üzerine inşa edilen çok daha geniş ve derin bir alandır. Ancak, bu temel bilgileri anlamak, web’in nasıl çalıştığına dair sağlam bir temel oluşturur. İleri düzeyde web geliştirme becerileri kazanmak için, HTML, CSS ve JavaScript’i daha derinlemesine öğrenmek, sunucu tarafı programlama dillerini (PHP, Python, Node.js vb.) incelemek ve veritabanı yönetimi gibi konuları da çalışmanız gerekecektir. Bu yolculukta, öğrendiğiniz her yeni bilgi, web’in karmaşık dünyasını daha iyi anlamanıza ve kendi web projelerinizi geliştirmenize olanak sağlayacaktır.

Bir yanıt yazın