Node JS Eğitimi – 06 (HTTP Sunucu)

Bir önceki eğitimimizde Döngüler ve Koşullar konusundan bahsetmiştik. Döngü çeşitlerinden ve farklı çalışma mantıklarından bahsettikten sonra Koşullu ifadelerin kullanımını görmüştük. Node JS eğitimimize HTTP Sunucu konu başlığıyla devam edelim. Bu konuya geçmeden önce temel seviyede öğrenmemiz gereken başka konular da var aslında. Ama bu konuları asıl konular içine yedirerek ve yeri geldiğince bahsederek anlatmak daha uygun olur diye düşündüm.

HTTP Sunucu

Bu yazımızda HTTP nesnesi oluşturarak bu nesnenin özelliklerini kullanarak bize gelen Request (istek) ve bizim geri gönderdiğimiz Response (yanıt) konularına değineceğiz.


var http = require('http');
function fonksiyon(request, response)
{
 console.log(request);
 response.writeHeader(200, { "Context-Type": "text-plain" });
 response.write("<html><head><title>Fatih YILMAZ</title></head><body><p>Erzincan 24</p></body></html>");
 response.end();
}
http.createServer(fonksiyon).listen(9999);
console.log("Sunucu çalıştı...");

Yukarıda yazılmış olan kodu açıklayalım. HTTP modülü ile ilgili işlemleri yapmak için birinci satırda yer alan tanımlamayı yapmamız gerekiyor. Bu tanımlama sayesinde HTTP nesnesini http isimli bir değişkene atıyoruz. HTTP nesnesinde iki farklı işlem yapabiliyoruz. Bu işlemler Request ve Response işlemleridir.

Request ve Response

Request: Kullanıcının herhangi bir tarayıcı kullanarak web hizmeti veren sunucuya göndermiş olduğu isteğin detaylarını tutan bir nesnedir diyebiliriz.

Response: Kullanıcı tarafından bize gönderilen Response nesnesine cevap verirken ileteceğimiz bilgileri içeren nesnedir. Bu nesnenin içerisinde kullanıcıya sunacağımız bilgileri HTML formatında göndeririz ve tarayıcı bunu yorumlayarak kullanıcının anlayacağı şekle (web sayfası görünümüne) çevirir.

Daha sonra parametre olarak bahsettiğimiz iki nesneyi alan bir fonksiyon isimli bir fonksiyon oluşturuyoruz. Fonksiyon içerisindeki ilk satırda ekrana response nesnesini yazdırıyoruz. Kodumuzu çalıştırıp console ekranına baktığımızda ekranda çokta anlamlandıramadığımız bir çok değer çıkacaktır. Bu değerlerin içerisindeki işimize yarayacak olanları fonksiyon içerisinde kullanarak response üretiminde kullanabiliriz. Bu konunun detayı için HTTP protokolünü ve nasıl çalıştığını incelemekte fayda var. Konu dışı olduğu için o kısma değinmeyeceğiz.

Bir sonraki satırda response.writeHeader() koduyla bizden istek yapan tarayıcıya cevap olarak isteğe cevabı doğru olarak vereceğimizi (200) ve gönderdiğimiz verinin formatını (“Context-Type”: “text-plain”) iki ayrı parametre olarak gönderiyoruz. Sonraki satırda da response.write() koduyla HTML kodlarımızı gönderiyoruz. Burada isterseniz koşulları veya döngüleri kullanarak farklı HTML ifadeler oluşturup onu gönderebilirsiniz. Fonksiyon içerisinde son olarak response.end() koduyla cevabımızın bittiğini belirtiyoruz.

Gelelim şimdi bu fonksiyonu ne yapacağımıza. http.createServer(fonksiyon).listen(9999) satırının çalışma mantığından bahsedeyim. createServer kısmı işlemin yapılacağı sunucuda HTTP hizmeti verecek bir işlem başlatmak ile tanımlanabilir. Bu işleme verdiğimiz fonksiyon yazdımıyla gelen talepleri ve cevapları yönetebiliyoruz. Listen ile hizmetimizin çalışacağı port numarasını atıyoruz. Port numarası verilirken verilen port numarasının başka bir uygulama veya servis tarafından kullanılmadığından emin olun. Zira çakışma olabilir ve yazdığınız kod çalışmayabilir. Ayrıca kodu çalıştıracağınız makinenin (sunucu veya kişisel bilgisayar) firewall u tarafından yasaklanabilirsiniz ve izin vermeniz gerekebilir.

Kodunuzu çalıştırdıktan sonra herhangi bir web tarayıcısına 127.0.0.1:9999 yazarak console ekranını ve tarayıcınızın size geri döndürdüğü sonucu inceleyiniz.

Javascript dosyasını indirmek için tıklayınız.

Bir sonraki dersimizde görüşmek üzere.

 

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir