Sunucu(Server)
Sunucularda portlar bulunur. Server gelen portları dinler ve gelen isteklere göre cevap döndürür. Web serverlarda 80 portundan gelen isteklere cevap verilir (Dns portu: 53,HTTP: 80, HTTPS: 443, SSH: 22). Bu ayarlar web serverlar tarafından yapılmıştır(apache, ngnix gibi.) Apache bir web server servisidir.
Peki neden bu servisleri kullanıyoruz, kendimiz gelen portu dinle diye kod yazamaz mıyız? Elbette yazabiliriz ve çok da uzun bir işlem değil. Fakat bu servisler sadece port dinlemesi yapmıyor. Config yapmayı sağlarlar ve kendi içinde birçok ayarı vardır. Gelişmişlerdir. Sadece port dinlemesi yapıyor şeklinde düşünmemek gerekir. Sunucu kendisine gelen istekleri host headerındaki istek adrese göre cevaplar.
Şöyle bir request gelmiş olsaydı;
GET /kayit.php HTTP/1.1
Host: kayit.linux.org.tr
Host: abc.com
Bu şekilde gelen isteğe web sunucuları farklı cevaplar verir. Apache abc.com adresini gönderirken, ngninx kayit.linux.org.tr adresini gönderecektir. Burada biri hatalı diyemeyiz. İkisininde cevabı doğrudur aslında.
Server gelen isteğin adresine göre kendi içinde öncelikle nerede olduğunu bulur (İstenilen dosya /home/linux/kayit.php gibi bir dizinde bulunur.). Server buradaki kodu alır ve gönderir. Biz sunucuda php kurmuşsak eğer apache önce bu dosyayı php’ye gönderir ve php bu dosyayı çalıştırdıktan sonra apache’ye verir. Apache aldığı cevabı yollar. Eğer php kurulu olmasaydı bu dosya kodları işlenmeden gönderilmiş olacaktı.