Web Sunucu Nedir ve Nasıl Çalışır?

Günümüzde hepimiz büyük bir zamanı internet üzerinden üzerinde geçiriyoruz. Peki bu esnada arka planda neler döndüğünü, işlemlerin nasıl gerçekleştiğini düşündünüz mü?

HTTP ve HTTPS protokollerini (hiper metin protokolü) kullanarak internet siteleri üzerinde yer almakta olan dosyaları kullanıcılara sunan, kullanıcıların her bir talep isteğini yanıtlayan ve bilgisayarların otomatik mekanizmaları tarafından yürütülen yazılımlara web sunucusu denir.

Popüler sunucular arasında Apache ve Microsoft Internet Information Server (IIS) web sunucularına örnek olarak verilebilir.

 

İletişim temel olarak yukarıdaki görselde de görüleceği gibi istemci yani client ile sunucu yani server arasında gerçekleşir. Şimdi biraz daha detaylarından bahsedelim.

HTTP Protokolü

Hyper Text Transfer Protocol’ün (üstün metin iletim protokolü) kısaltmasıdır ve internet üzerinde bilgi iletmeyi sağlayan bir protokoldür. Bu protokol, bir istemci ile bir sunucu arasındaki iletişimi sağlar. Bu protokol 80 numaralı port üzerinden gerçekleşir. Belki duymuş olabileceğiniz HTTPS protokolü ile arasındaki fark ise HTTPS’in adındaki “S” yani “secure”den de anlaşılabileceği gibi güvenliktir.

HTTP protokolü kısaca şu aşamalardan oluşur:

  1. İstemci İsteği: Tarayıcı, sunucuya HTTP isteği gönderir (GET, POST gibi). İstek, URL (kaynak adresi) ve HTTP başlıkları içerir.
  2. Bağlantı Kurma: HTTP, TCP bağlantısı üzerinden çalışır. İlk olarak, üç aşamalı (three-way handshake) ile TCP bağlantısı kurulur.
  3. İsteği İşleme: Sunucu isteği aldıktan sonra talep edilen kaynağı (örneğin bir HTML sayfası) hazırlar.
  4. Yanıt Gönderme: Sunucu, HTTP başlıklarıyla birlikte kaynak dosyayı yanıt olarak gönderir.

İlk aşamada bahsedilen HTTP metotları ise şu şekildedir:

GET: Belirtilen URL’deki veriyi almak için kullanılır. Bu metotla örneğin bir web sayfasını tarayıcıya getirebiliriz.

POST: Belirtilen URL’e yeni bir kaynak eklemek için kullanılır. Bu metotla örneğin form gönderimi sonucunda veriyi sunucuya ekleyebiliriz.

PUT: Belirtilen URL’de var olan bir veriyi güncellemek için kullanılır. Bu metotla sunucuda var olan bir dosyayı güncelleyebiliriz.

PATCH: Var olan bir verinin belli bir kısmını güncellemek için kullanılır. Bu metotla örneğin bir kaydın belli bir kısmını güncelleyebiliriz.

DELETE: Belirtilen URL’deki veriyi silmek için kullanılır. Bu metotla bir dosyayı veya herhangi bir kaydı silebiliriz.

HEAD: GET metoduna benzer ancak sadece başlık bilgilerini alır, asıl içeriği almaz. Bu metodu bir kaynağın var olup olmadığını veya değişip değişmediğini kontrol etmek için kullanabiliriz.

OPTIONS: Belirtilen URL’deki verinin desteklediği HTTP metotlarını almak için kullanılır. Bu metodu sunucunun hangi metotları desteklediğini anlamak için kullanabiliriz.

 

DNS

Domain name system’ın kısaltması olan DNS (alan adı sistemi), alan adları ve IP adresleri ilişkisini organize etmeye yarar. Sunucuların IP adresleri burada korunur. Eski zamanlarda kullanılan telefon defterleri gibi düşünebiliriz.

 

TCP

Transmission Control Protocol yani iletim kontrol protokolünün kısaltması olan TCP, IP üzerinden ulaşma garantili ve herhangi bir boyda veri gönderilmesine imkân tanıyan bir protokoldür. UDP'den (User Datagram Protocol/Kullanıcı Veri Bloğu İletişim Protokolü) farklı olarak, TCP'de iki cihazın iletişim kurabilmesi için önce birbirlerine bağlanmaları gerekmektedir. Bu açıdan TCP ve UDP farklı durumlara ve ihtiyaçlara göre kullanılabilir.

 

TCP şu aşamalarla gerçekleşir:

  1. Bağlantı Kurma: TCP, üç aşamalı el sıkışma (three-way handshake) ile güvenilir bir bağlantı kurar. Bu aşamalar SYN, SYN-ACK ve ACK olarak bilinir.
  2. Veri Gönderme: Bağlantı kurulduktan sonra veri, segmentler halinde gönderilir. Her segment alındıktan sonra bir onay (ACK) gönderilir.
  3. Sıralama ve Düzeltme: TCP, gönderilen segmentleri sıralar ve eksik paketleri yeniden isteyerek bütünlüğü sağlar.
  4. Bağlantıyı Sonlandırma: Veri iletimi tamamlandığında, dört aşamalı bağlantı sonlandırma (FIN, FIN-ACK, ACK) işlemi ile bağlantı kapanır.

 

Peki yazılan bir kod nasıl çalışır?

Öncelikle TCP, IP üzerinden PHP kodunu çalıştırmak için bir web sunucusu ve PHP yorumlayıcısı gerekir.

  • Kullanıcı, bir web sayfasına erişmek istediğinde tarayıcısını kullanarak bir istek (request) gönderir.
  • Tarayıcıdan gelen bu istek, web sunucusuna ulaşır. Web sunucusu, belirli bir PHP dosyasını bulup çalıştırmak için bu isteği işler.
  • Web sunucusu, istenen PHP dosyasını bulur ve içindeki PHP kodunu çalıştırır. PHP, dinamik içerik oluşturmak için kullanılır; veritabanı ile etkileşim bu aşamada kurulur ve gerekli verileri çekilir.
  • PHP kodu çalıştırıldığında, web sunucusu bu koddan bir HTML dosyası üretir. Bu dosya, tarayıcıda görüntülenecek içerikleri içerir.
  • Üretilen HTML dosyası, web sunucusu tarafından tarayıcıya geri gönderilir. Kullanıcı, tarayıcısında web sayfasını görür.

 

Yazar: Berkay UZUN

Düzenleme: Sanal Yazılım ekibi

04.11.2024 194

Yorumlar

Bu sayfalarda yer alan okur yorumları kişilerin kendi görüşleridir. Yazılanlardan Sanal Yazılım Ltd. veya sanal.mobi sorumlu tutulamaz. Yorumda ad-soyadınız anonimleştirilerek gösterilir, e-posta adresiniz ise yayınlanmaz.
Kullanıcı deneyimini geliştirmek, site kullanımını analiz etmek ve pazarlama çabalarımıza yardımcı olmak için çerezleri kullanıyoruz. Sitemize göz atmaya devam ederek veya bu bilgilendirmeyi kapatarak, Çerez Politikası`nı okuduğunuzu ve kabul ettiğinizi onaylamış olursunuz.