Web Sunucu (Server) Nedir?

Server (Sunucu) Nedir?

“Sunucu, bilgisayar ağlarında, diğer ağ bileşenlerinin erişebileceği, kullanımına ve/veya paylaşımına açık kaynakları barındıran bilgisayar birimi.” şeklinde bir tanımı var Vikipedi’de. Kısaca kaynaklarını sunan bilgisayarlar diyebiliriz. Bu kaynaklar donanım olabileceği gibi yazılım da olabilmektedir.

Bir sunucunun en önemli özelliği verdiği hizmeti kesintisiz, istikrarlı ve güvenli olarak verebilmesidir. Bunu sağlamak için gelişmiş donanım özelliklerine sahiptirler. Herhangi bir elektrik sorunu için kesintisiz güç kaynaklarının kullanılması, aralıksız ve performanslı çalıştıkları için özel soğutma sistemleri, verileri hızlı ve kesintisiz aktarabilmeleri için özel iletişim hatları büyük sunucu sistemlerinin ek bileşenlerinden bazılarıdır.

Donanım bileşenlerinin yanında bir sunucuyu sunucu yapan yazılımlardır. Sunuculara özgü işletim sistemleri vardır (Linux, Unix, Windows Server gibi). Bunun yanında hangi amaç için hizmet vereceklerse (web sunucu, email sunucusu, dosya sunucusu, oyun sunucusu gibi) onunla ilgili yazılımlara da ihtiyaç vardır.

Herhangi bir kişisel bilgisayarı (PC) da sunucu yapabilir miyiz?

Evet yapabiliriz. Fakat biraz önce değindiğimiz özelliklerden yoksun oldukları yani sunucu olmak için üretilmediklerinden gereken performansı alamayabiliriz. Sunucuların, PC (Personal Computer – Kişisel Bilgisayar)’lerden farkı aralıksız çalışmak için üretilmiş olmaları ve yüksek oranda hatasız çalışmalarıdır.

Sunucu Odası

Web Server (Sunucu)

Web sunucusunun görevi, gelen HTTP (Hyper Text Transfer Protocol – Hiper Metin Transfer Protokolü) isteklerine cevap vermektir. Herhangi bir istemciden gelen web sayfası isteklerini yanıtlamak için barındırdığı sayfalardan ilgili olanı istemciye gönderir. Bunu 80 numaralı portu dinleyerek yapar. Başka bir ifadeyle, siz tarayıcı programlar ile herhangi bir web sitesini ziyaret etmek istediğinizde, ilgili sitenin web sunucusu isteği alır ve gereken sayfaları oluşturup sizin bilgisayarınıza gönderir.

Bir sunucunun Web Sunucu olarak hizmet verebilmesi için web sunucu yazılımına ihtiyacı var. Bu yazılımlardan bazıları şunlardır: Apache, IIS, Nginx ve LiteSpeed.

Web server yazılımlarından en çok kullanılanı şu sitede de görüldüğü gibi Apache‘dir.

Apache HTTP Server, Apache Software Foundation tarafından geliştirilen açık kaynak web sunucu uygulamasıdır. Sunucu yazılımı serbestçe ve bedava dağıtılabilir ve açık kaynak olması, kullanıcıların performansın düzeltilmesi ve programın gelecekteki gelişimine katkıda bulunmak için temel kodu düzenleyebilecekleri anlamına gelir. Apache hemen hemen tüm işletim sistemleri ile çalışabilir, aynı zamanda kendisi de açık kaynak olan Linux işletim sistemi sıklıkla kullanılır.

İkinci çok kullanılan web server yazılımı Microsoft firmasının Internet Information Server – IIS yazılımıdır. Bir Windows makinesinin Web sitelerini yönetmesini sağlayan FTP (File Transfer Protocol – Dosya Aktarım Protokolü), HTTP, SMTP (Simple Mail Transfer Protocol – Basit Mail Transfer Protokolü) gibi bir dizi servisten oluşur. IIS sadece Windows bilgisayarlarda çalıştığı için işletim maliyetlerini artırır (Bu arada Apache bedava ). Windows işletim sistemleri kötü amaçlı yazılım saldırılarına daha eğilimli olduğu için daha az güvenli sunucu seçeneği olarak ün kazanmıştır.

Özetle, maliyet önemli ise Apache hiç maliyet olmayan çözümdür. Güvenlik söz konusu olduğunda Apache daha güvenli bir seçenek olarak karşımıza çıkıyor. Sunucularınızda Windows işletim sistemi çalıştırmayacaksanız IIS’i çalıştıramazsınız. ASPX’e dayanan bir komut dosyası çalıştırmak isterseniz Windows platformunda IIS kullanırsınız.

LiteSpeed yüksek performans ve ölçeklenebilirlik özellikleri sunan bir web server teknolojisidir. Ücretli bir yazılımdır. Yüksek ziyaretçisi olan siteler için sunucu yükünü azaltmak amacıyla tercih edilmektedir. Apache’den iki kat fazla maksimum kapasite sunduğunu iddia eder.

Nginx web sunucusunun da yüksek performanslı olduğu söylenebilir. Rakiplerinden daha az Cpu kullandığı ve daha hızlı olduğu görülmektedir. İncelemek isterseniz siteye buradan ulaşabilirsiniz.

ApacheIISLiteSpeedNginx

Görüşmek üzere…

Php Nedir?

PHP nedir , “PHP: Hypertext Preprocessor“, yaygın olarak kullanılan, Açık Kaynak genel amaçlı bir script (betik) dilidir. Özellikle, web geliştirme için  uygundur ve HTML dilinin içerisine gömülebilir bir dildir. Sözdizimi (syntax) C, Java ve Perl dillerine benzer ve öğrenim kolay bir dildir. PHP dilinin ana amacı web geliştiricilerinin hızlı bir şekilde dinamik sayfalar oluşturmasını sağlamaktır.

PHP, 1994 yılında Rasmus Lerdorf tarafından çevrimiçi özgeçmişinin ziyaretlerini takip etmek için hazırlanmıştır. Rasmus yazdığı bu koda “Personal Home Page Tools” ya da daha bilinen adıyla PHP Tools adını vermiştir. PHP’nin eskiden kullanılan kısaltması “Personal Home Page dir. Daha sonradan daha fazla fonksiyonellik istenince PHP’yi yeniden yazmıştır. Bu yeni modeldeki veritabanı etkileşimi sayesinde, ziyaretçi defteri gibi basit dinamik web uygulamaları geliştirilebilecek bir çerçeve sağlanmıştır. 1995 yılının Haziran ayında Rasmus Lerdorf, PHP Tools’un kaynak kodlarını paylaştı ve bu geliştiricilerin uygun gördükleri şekilde kullanmasına izin vermek anlamına geliyordu. PHP’nin geliştirilmesi bugün PHP topluluğu tarafından sürdürülmektedir. Gelişmeleri resmi sitesinden takip edebilirsiniz.

PHP Ne Yapabilir?

Herşeyi. PHP esas olarak sunucu taraflı çalışan bir betik dilidir. Böylece diğer CGI programlarının, form verilerinin toplanması, dinamik sayfalar oluşturma, çerezleri kullanma gibi yapabilecekleri herşeyi yapabilirsiniz. Ama PHP daha fazlasını da yapabilir.

Çok detaya girmeden 3 ana başlıkta PHP’nin yapabileceklerini özetlersek:

  • Sunucu taraflı çalışma
  • Komut satırında çalışma
  • Masaüstü uygulama yazma

HTML (Hyper Text Markup Language) web sayfası oluşturmak için kullanılan işaretleme dilidir. Bu dil ile oluşturduğunuz web sayfaları herhangi bir işleme gerek kalmadan tarayıcı (browser) programlar (Chrome, Firefox, IE, Safari vb.) vasıtasıyla görüntülenebilir. Örnek olarak:

<html>
  <head> <title> Merhaba </title> </head>
  <body>
    <h1> Merhaba Dünya! </h1>
  </body>
</html>

Bu kodu herhangi bir metin editörüne kopyalayıp uzantısını .html olacak şekilde kayıt ederseniz, tarayıcı programlar ile direkt olarak açabilirsiniz.

Fakat PHP ile aynı sayfayı oluşturmak istediğinizde, öncelikli olarak PHP programının yazdığınız betiği ele alıp değerlendirmesi ve sonra HTML çıktı üretmesi gerekir. Ancak bu aşamadan sonra tarayıcı programlar ile sayfanızı görebilirsiniz. Bunu için de bir web sunucu yazılımına (Apache, IIS …) ve PHP’ye ihtiyacınız var. Kendi bilgisayarınıza da sunucu yazılımlarını ve PHP’yi kurup yerelde deneme yapabilirsiniz. Web sunucular ile ilgili yazımıza buradan ulaşabilirsiniz.

Yukarıdaki HTML kodu sayfaya sadece Merhaba Dünya! yazıyor. Aynısını PHP ile yapmak istersek:

<html>
  <head> <title> Merhaba </title> </head>
  <body>
    <?php
      echo "<h1>Merhaba Dünya!</h1>";
    ?>
  </body>
</html>

şeklinde bir kod kullanabiliriz. Kodları herhangi bir metin editörüne kopyalayıp uzantısını .php olarak kayıt ederseniz sunucunun anlayacağı bir php dosyası oluşturmuş olursunuz.

PHP‘ye basit bir giriş yapmış olduk. Sonraki yazımızda görüşmek üzere…

Merhaba Dünya!

Standardı bozmayalım, ben de yeni bir siteye hayırlı olsun derken Merhaba Dünya! ile başlayayım.

Ama birkaç tane de kod ekleyeyim buraya…

PHP

<?php echo "Merhaba Dünya!"; ?>

Python

print ("Merhaba Dünya!!")

Ruby

puts "Merhaba Dünya!"

Pascal

  program MerhabaDunya;

  begin
	writeln('Merhaba Dünya!');
  end.

Go

 package main

 import "fmt"

 func main() {
	fmt.Printf("Merhaba Dünya!\n")
 }

Görüşmek üzere…