Sunucu (Server) Nedir? Uygulama Geliştiricileri İçin Sade Rehber
Sunucu, istekleri bekleyen ve yanıtlayan bir bilgisayardır — ya da bir bilgisayarda çalışan bir programdır. Bir web sitesini açtığınızda tarayıcınız (istemci) internet üzerinden bir istek gönderir ve bir yerdeki bir sunucu sayfayı, görselleri ya da veriyi geri gönderir. E-postadan internet bankacılığına kadar kullandığınız her uygulama, sunucuların bunu günde milyonlarca kez yapmasına dayanır.
Yapay zekâyla geliştirirken sunucular neden önemli?
Bir yapay zekâ oluşturucu sizin için bir uygulama yaptığında, kodun bir kısmı ziyaretçinin tarayıcısında, bir kısmı genellikle bir sunucuda çalışır. Sunucu kısmı, tarayıcıya güvenilemeyen ya da tek başına yapamadığı işleri yapar:
- Verileri kaydetmek ve yüklemek, bir veritabanından.
- Sırları saklamak, örneğin ödeme ya da yapay zekâ sağlayıcısı API anahtarları; bunlar asla tarayıcıya ulaşmamalıdır.
- İzinleri kontrol etmek — bir kullanıcının yalnızca kendi kayıtlarını görüp değiştirebildiğinden emin olmak.
- Diğer hizmetlerle konuşmak: bir karttan ücret almak, e-posta göndermek, bir yapay zekâ modelini çağırmak.
Sunucunun ne yaptığını bilmek, uygulamanızın kuralarının gerçekte nerede yaşadığını, bazı değişikliklerin neden yeniden yayımlama gerektirdiğini ve bir uygulamayı barındırdığınızda neye para ödediğinizi anlamanıza yardımcı olur. İki yarı arasındaki ayrım için frontend ve backend rehberine bakın.
Günlük bir benzetme
Sunucu bir postanedeki gişe memuruna benzer. Müşterilerin peşinden gitmez; bekler. Bir müşteri bir istekle gelir — “bu koliyi gönder”, “bana gelen bir posta var mı?” — ve memur işi yapıp bir sonuç geri verir. Bir memur sırayla birçok müşteriye hizmet verebilir ve kalabalık bir postane daha fazla gişe açar.
Postanenin ayrıca müşterinin değiştiremeyeceği kuralları vardır: paketi almak için kimlik göstermeniz gerekir. Uygulamadaki sunucunun işi de budur — tarayıcı her şeyi isteyebilir, ama neyi alacağına sunucu karar verir.
Bir istek bir sunucuya nasıl ulaşır?
Birisi https://bookings.example.com/schedule adresini ziyaret ettiğinde:
- DNS sorgusu. Tarayıcı, alan adı sisteminden
bookings.example.com'un hangi IP adresine işaret ettiğini sorar. Bkz. alan adları ve DNS nasıl çalışır. - Bağlantı. Tarayıcı HTTPS için 443 numaralı porta bağlanır ve şifreli bir bağlantı kurar. Bkz. HTTPS ve SSL nedir.
- İstek. Bir HTTP isteği gönderir:
GET /schedule. - İş. Sunucu
/scheduleiçin yazılmış kodu çalıştırır — belki veritabanındaki bugünkü randevuları arar. - Yanıt. Bir durum kodu (
200 OK) ve içeriği geri gönderir — bir HTML sayfası ya da sayfanın göstereceği JSON verisi.
Bütün bunlar genellikle saniyenin bir kesri kadar sürer.
Duyacağınız sunucu türleri
| Terim | Anlamı |
|---|---|
| Web sunucusu | HTTP isteklerini yanıtlayan yazılım — dosyaları göndermek ya da istekleri uygulamanızın koduna iletmek. |
| Uygulama sunucusu / backend | Kendi kodunuzun bir sunucuda çalışması: rezervasyonları, girişleri ve ödemeleri yöneten API. |
| Veritabanı sunucusu | Verileri saklamak ve sorgulamak için var olan sunucu — uygulamanızın konuştuğu Postgres veritabanı gibi. |
| Dosya / statik sunucu | Her istek için özel kod çalıştırmadan, hazır dosyaları (HTML, görseller, betikler) gönderir. |
| Fiziksel sunucu | Bir veri merkezindeki rafta duran gerçek bir makine. |
| Sanal makine (VM) / VPS | Fiziksel bir makinenin kendi bilgisayarıymış gibi davranan bir dilimi. |
| Konteyner | Bir uygulamanın ve ihtiyaç duyduğu her şeyin paylaşılan bir makinede çalışan hafif bir paketi. Birçok platform uygulamaları bu şekilde dağıtır. |
| Sunucusuz (serverless) | Kodu yüklersiniz, sağlayıcı talep üzerine çalıştırır — hiç yönetmediğiniz sunucularda. Bkz. sunucusuz ne demektir. |
“Sunucu” hem makineyi hem de programı ifade ettiğini unutmayın. “Sunucu çöktü” ifadesi ikisinden birini kastedebilir.
Çalışılmış bir örnek: bir kuaför randevu uygulaması
Küçük bir kuaför randevu uygulamasında sunucunun yaptığı şeyler:
- Bir ziyaretçi siteyi açar. Sunucu (ya da önünde duran bir CDN) sayfa dosyalarını gönderir.
- Sayfa sunucudan
GET /api/slots?date=2026-10-03ister. Sunucu veritabanını boş saatler için sorgular ve bunları JSON olarak döndürür. - Ziyaretçi 14:00'ü ayırtır. Sayfa
POST /api/bookingsgönderir. Sunucu saatin hâlâ boş olduğunu kontrol eder — tarayıcının sözüne güvenmez — randevuyu kaydeder ve201 Createddöndürür. - Sunucu, sunucuda saklanan gizli bir anahtarla bir e-posta hizmetini çağırarak onay e-postasını gönderir.
Sunucuyu kapatırsanız, sayfa bir CDN'den yine yüklenebilir, ama boş saatleri gösteremez ya da randevu kaydedemez.
Bir sunucunun iyi çalışması için ne gerekir?
- Bellek (RAM) ve CPU. Bellek yetersizse uygulama yük altında çöker; CPU yetersizse yavaşlar.
- Çalışıyor olmak. Kapalı bir sunucu yanıt veremez. Bazı platformlar boştaki uygulamaları uyutur ve bir sonraki ziyarette uyandırır; bu para tasarrufu sağlar ama ilk isteği yavaşlatabilir.
- Yapılandırma ve sırlar, ortam değişkenleri olarak sağlanır.
- Günlükler (logs) — sunucunun neler olduğuna dair kaydı; bir şey bozulduğunda ilk bakacağınız yer burasıdır.
- Güncellemeler ve güvenlik yamaları, yönetilen barındırmada bunları sizin yerinize platform yapar.
Yaygın yanlış anlamalar
- “Bulut demek sunucu yok demektir.” Bulut, saat ya da kullanım başına kiralanan başka şirketlerin sunucularıdır.
- “Sunucu büyük ve özel bir bilgisayardır.” Her bilgisayar sunucu olarak çalışabilir. Geliştirme sırasında
localhost'u açtığınızda dizüstü bilgisayarınız bir sunucu çalıştırır. - “Düğme gizliyse, kullanıcılar yapamaz.” Herkes isteklerini doğrudan sunucunuza gönderebilir. İzin kontrolleri yalnızca sayfada değil, sunucuda yapılmalıdır.
- “Daha fazla sunucu yavaşlığı düzeltir.” Çoğu zaman gerçek neden yavaş bir veritabanı sorgusu ya da dış bir API'dir. Önce darboğazı bulun.
- “Bir uygulamaya sahip olmak için bir sunucuyu yönetmem gerekir.” Yönetilen platformlar sunucuları sizin yerinize çalıştırır; siz kodu dağıtırsınız, makineleri onlar yönetir.
Yapay zekâ oluşturucunuzdan ne istemelisiniz?
- “Bu uygulamanın hangi kısmı sunucuda, hangisi tarayıcıda çalışıyor?”
- “Tüm API anahtarlarını sunucuda tut ve bunları ortam değişkenlerinden oku.”
- “Veri okuyan ya da değiştiren her istek için izinleri sunucuda kontrol et.”
- “Sunucu günlüklerini nerede bulurum ve bu hata hakkında ne söylüyorlar?”
- “Bu uygulamanın hiç sunucuya ihtiyacı var mı, yoksa statik bir site olabilir mi?”
- “Uygulama boşta kaldıktan sonra ilk istek ne olacak?”
Mythex'te sunucular
Mythex'te sunucuları kurmaz ya da yönetmezsiniz. Geliştirme sırasında uygulamanız canlı önizleme için özel bir bulut sandbox'ında çalışır. Yayımladığınızda Mythex dağıtır: statik ön yüzler statik site olarak, backend'ler (Node, Python, C#, Java ve diğerleri) ise bir Dockerfile'dan oluşturulan konteynerler olarak. Kendiniz barındırma ayarı yapmanız gerekmez. Mythex, dağıtım sırasında makine boyutunu seçer: varsayılan olarak 1 CPU ve 512 MB bellek, istek üzerine daha fazlası mevcuttur (Free'de 1 GB'a, Pro'da 2 CPU, 4 GB ve 3 makineye kadar). Yayımlanmış uygulamalar boştayken uyur ve bir sonraki ziyarette uyanır; uyuyan bir uygulama işlem gücü için hiçbir şey harcamaz. Ayrıntılar için API backend'leri ve barındırma limitleri dokümantasyon sayfalarına bakın; daha geniş resim için web barındırma rehberimiz yer alır.
Sorular
Sunucu basitçe nedir?
Sunucu, diğer cihazlardan gelen istekleri bekleyen ve yanıtlayan bir bilgisayar ya da bir bilgisayarda çalışan bir programdır. Bir web sitesini açtığınızda tarayıcınız sunucudan sayfayı ister ve sunucu onu geri gönderir.
Sunucu fiziksel bir makine mi yoksa yazılım mı?
Her iki anlamda da kullanılır. “Sunucu” fiziksel ya da sanal bilgisayarı, ya da üzerinde istekleri yanıtlayan programı, örneğin bir web sunucusunu ifade edebilir. Bugün çoğu uygulama, sahip olduğunuz donanımda değil, bir bulut sağlayıcısının veri merkezindeki sanal makinelerde ya da konteynerlerde çalışır.
Her web sitesinin bir sunucuya ihtiyacı var mı?
Evet, ziyaretçiye dosyaları bir şeyin göndermesi gerekir. Statik bir web sitesi yalnızca basit bir dosya sunucusuna ya da CDN'e ihtiyaç duyar. Veri kaydeden, girişleri yöneten ya da gizli API anahtarlarını tutan bir uygulama ise kendi kodunuzu çalıştıran bir backend sunucusuna da ihtiyaç duyar.
localhost ne anlama gelir?
Localhost, “bu aynı bilgisayar” demektir. Bir geliştirici uygulamasını kendi makinesinde çalıştırıp http://localhost:3000 gibi bir adreste açar. Yalnızca o bilgisayar buna erişebilir; herkese açık bir sunucuya dağıtılana kadar kimse göremez.