2470

Node.js ile Sıfırdan İleri Seviye Web Geliştirme

Node.js Http Server

Node.js dersleri serimizin bu bölümünde node.js http server oluşturarak http request ve response sürecini takip edelim.

Node.js HTTP Server

Her hangi bir web uygulamasından yapılan bir ziyaret http request ve response sürecini başlatır. Uygulamanın hangi platformda geliştirildiği önemli değildir. Server' a yapılan talep ve server' in oluşturacağı cevap bilgisi (Request ve Response) htttp protokolüne uyması gerekir. 

Http Request ile server' a yapılan talep içerisinde kullanıcının bilgileri server'a iletilir. Örneğin; tarayıcı bilgisi, isteğin adresi, talebin yapıldığı zaman bilgisi, cookie vb.

Talep sonucunda server bir Http Response oluşturup bunu talep yapılan client' a gönderir. Örneğin; Json bilgi, Html sayfası vb.

Node.js ile bu süreci yönetmek için bir server nesnesi oluşturmalıyız.

var http = require("http");

var server = http.createServer((request, response) => {
    response.end();
});

server.listen(3000);

console.log("node.js server at port 3000");

Node.js kurulumu ile birlikte node modülleri bilgisayarımızı yüklenir. Örneğin; http, js, url modülleri.

var http = require("http");

http modülünü dosyaya dahil ediyoruz.

var server = http.createServer((request, response) => {
    response.end();
});

createServer metoduna bir callback fonksiyonu gönderiyoruz.

Callback fonksiyonu yapılan request ve geri gönderilen response objelerini parametre olarak alır.

Süreci bitirmek için mutlaka response' i sonlandırmamız gerekir.

Request ve Response nesnelerini incelemek için bu nesneleri console' a yazdırabiliriz. Tarayıcı ile server' a bir talep göndermelisiniz. localhost:3000 adresini tarayıcıdan ziyaret ediniz ve editör console' unu kontrol ediniz.

var server = http.createServer((request, response) => {
    console.log(request.url, request.method);
    console.log(response.statusCode);

    response.end();
});
/ GET
200
/favicon.ico GET
200

/ adresine yani ana dizine bir GET sorgusu yapılır ve cevap olarak 200 http status code gönderilir. Yani yapılan talep başarılı şekilde sonlandırıldı.

** Tarayıcı varsayılanı olarak her sorguda server' dan favicon talep edilir.

Eğer Http Response ile sayfaya bir yazı göndermek isterseniz response.write() metodu kullanılabilir.

var server = http.createServer((request, response) => {

    response.write("<h1>anasayfa</h1>");
    response.write("<p>urunler</p>");

    response.end();
});