Node.js HTTP Request İşleme

Node.js sayesinde HTTP requestler asenkron olarak işlenebilir. HTTP request, için bir sunucuya bir istekte bulunması durumu diyebiliriz. Bu istek sonucu ise sunucudan response yani cevap elde edilir. Daha öncesinde Node.js İlk Uygulama yazısında yaptığımız uygulama üzerinden devam edelim:
const http = require('http');

const server = http.createServer((req, res) => {
    res.writeHead(200, {'Content-Type': 'text/html'});
}).listen(8000);
Server oluşturmak için createServer() fonksiyonu kullanıldı. Bu fonksiyon parametre olarak req(request) ve res(response) parametrelerini içermektedir. req istenilen cevabın sorusu olan nesneyi temsil eder. Örneğin, sayfanın görüntülenmesi için gerekli url bilgisi. res, request'e bağlı olarak gerekli cevabı gönderen nesnedir.

Yukarıdaki kodda Request işlemek adına bazı eklemeler yapıyoruz:
const http = require('http');

const server = http.createServer((req, res) => {
    if(req.url == '/'){
        res.writeHead(200, {'Content-Type': 'text/html'});
        res.write('<html><body><h1>Ana Sayfa</h1></body></html>');
        res.end();
    }
    else if(req.url == "/blog"){
        res.writeHead(200, {'Content-Type': 'text/html'});
        res.write('<html><body><h1>Blog</h1></body></html>');
        res.end();
    }
}).listen(8000);
Yukarıdaki kodda URL sorgulama yaptık. Alınan URL requestine göre gerekli içeriği yazdırdık. Sonrasında end() metotu ile response gönderildi.
Server çalıştırılır, node main.js. Sonrasında konsol üstünde kontrol etmek için curl kullanabiliriz -> curl -i http://localhost:8000. Alınan cevap aşağıdaki gibidir:
C:\Users\gurb>curl -i http://localhost:8000
HTTP/1.1 200 OK
Content-Type: text/html
Date: Wed, 13 May 2020 07:59:33 GMT
Connection: keep-alive
Transfer-Encoding: chunked

<html><body><h1>Ana Sayfa</h1></body></html>
localhost:8000/blog url test edelim:
C:\Users\gurb>curl -i http://localhost:8000/blog
HTTP/1.1 200 OK
Content-Type: text/html
Date: Wed, 13 May 2020 08:02:14 GMT
Connection: keep-alive
Transfer-Encoding: chunked

<html><body><h1>Blog</h1></body></html>
Ayrıca curl kullanmak yerine web tarayıcı üzerinden de kontrol edilebilir.

Hiç yorum yok:

Yorum Gönderme