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(); });