Node.js ile HTTP Sunucusu Oluşturma

  • 12
  • (1)
  • (5)
  • 19 Oca 2025

Node.js, hafif ve verimli bir şekilde yüksek trafikli web uygulamaları geliştirmek için kullanılan bir Javascript çalışma ortamıdır. Node.js'in yerleşik http modülü sayesinde, ekstra bir kütüphane gerektirmeden basit ve güçlü bir web sunucusu oluşturabilirsiniz.

Bu makalede, Node.js kullanarak bir HTTP sunucusu oluşturmayı ve temel işlevleri uygulamayı öğrenebilirsiniz.


Node.js HTTP Modülü Nedir?

Node.js, http modülü aracılığıyla istemciden gelen HTTP isteklerini işleyerek yanıtlar döndürmeyi sağlar. Bu modül, HTTP sunucuları oluşturmak ve yönetmek için gerekli işlevleri içerir.

http modülünün temel işlevleri şunlardır:

  • HTTP sunucusu oluşturmak
  • İstekleri dinlemek ve işlemek
  • Yanıtları istemciye döndürmek

HTTP modülünü kullanarak temel bir web sunucusu oluşturmak oldukça kolaydır.


Basit Bir HTTP Sunucusu Oluşturma

Aşağıdaki adımları takip ederek basit bir HTTP sunucusu oluşturabilirsiniz.

1. Proje Dizini Oluşturma

Öncelikle bir proje dizini oluşturun ve içine girin:

mkdir node-projesi
 cd node-projesi

2. HTTP Sunucusu Kodunu Yazma

server.js isimli yeni bir dosya oluşturun ve şu kodları ekleyin:


const http = require('http');

const server = http.createServer((req, res) => {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Merhaba, Node.js HTTP Sunucusu!');
});

const PORT = 3000;
server.listen(PORT, () => {
    console.log(`Sunucu portu: ${PORT}`);
});

Bu kod şu işlevleri yerine getirir:

  • http.createServer() metodu ile bir HTTP sunucusu oluşturulur.
  • Sunucu gelen istekleri dinleyerek yanıt olarak "Merhaba, Node.js HTTP Sunucusu!" mesajını döndürür.
  • Sunucu 3000 portunda dinlemeye başlar.

3. Node.js Projesi Başlatma

Projeyi başlatmak için şu komutu çalıştırın: npm init -y

Bu işlem, proje için bir package.json dosyası oluşturacaktır.

Sunucuyu Çalıştırma

Terminalde şu komutla sunucuyu başlatabilirsiniz: node server.js

Tarayıcınızda http://localhost:3000 adresine giderek sunucunun çalıştığını görebilirsiniz.


İstek ve Yanıt İşleme

HTTP sunucusu, istemciden gelen istekleri (request) işleyerek farklı yanıtlar (response) döndürebilir. Örneğin, farklı URL yollarını ele almak için aşağıdaki kodu kullanabilirsiniz:


const http = require('http');

const server = http.createServer((req, res) => {
    if (req.url === '/') { // http://localhost:3000
        res.writeHead(200, { 'Content-Type': 'text/html' });
        res.end('<h1>Ana Sayfa</h1>');
    } else if (req.url === '/hakkinda') { // http://localhost:3000/hakkinda
        res.writeHead(200, { 'Content-Type': 'text/html' });
        res.end('<h1>Hakkında Sayfası</h1>');
    } else {
        res.writeHead(404, { 'Content-Type': 'text/html' });
        res.end('<h1>Sayfa Bulunamadı</h1>');
    }
});

server.listen(3000, () => {
    console.log('Sunucu portu: 3000');
});

http://localhost:3000 adresi ana sayfa olarak dönecektir. http://localhost:3000/hakkinda adresi hakkında sayfası olarak dönecektir. Diğer her adres bulunamadı sayfasını döndürecektir.


JSON Yanıtları Gönderme

Bir API oluştururken istemcilere JSON formatında veri göndermek yaygın bir uygulamadır. Aşağıdaki kod, JSON verisi döndüren bir HTTP sunucusu oluşturur:


const http = require('http');

const server = http.createServer((req, res) => {
    res.writeHead(200, { 'Content-Type': 'application/json' });
    const data = { message: 'Merhaba, bu bir JSON yanıtıdır!' };
    res.end(JSON.stringify(data));
});

server.listen(3000, () => {
    console.log('JSON sunucusu 3000 portunda çalışıyor...');
});

{"message":"Merhaba, bu bir JSON yanıtıdır!"} şeklinde bir JSON yanıtı gelecektir. JSON formatında istek ve yanıtlarla daha profesyonelce çalışabilmek için Postman isimli yazılımı indirip bilgisayarınıza kurabilirsiniz.

İlişkili İçerikler

Node.js, Chrome'un V8 JavaScript motoru üzerine inşa edilmiş, hızlı ve ölçeklenebilir web uygulamaları geliştirmek için kullanılan açık kaynaklı bir çalışma ortamıdır.

Node.js, JavaScript'i sunucu tarafında çalıştıran, ölçeklenebilir ve yüksek performanslı uygulamalar geliştirmek için kullanılan açık kaynaklı bir teknolojidir.

Paylaşın
Etiket Bulutu