Node.js HTTP/HTTPS Modülleri

Bugün sizlere Node.js’in HTTP ve HTTPS modülleri hakkında bilgi vermek istiyorum. Her iki modül de Node.js’in temel bileşenlerinden biridir ve bir Node.js geliştiricisi olarak bu modülleri anlamak önemlidir.

Node.js HTTP/HTTPS Modülleri

HTTP ve HTTPS modülleri, Node.js ile web sunucusu oluşturmanın temel yoludur. HTTP ve HTTPS, internetin en yaygın iletişim protokollerinden ikisidir ve her ikisi de web istemcisi (bir web tarayıcısı gibi) ve sunucu arasında bilgi alışverişini düzenler.

HTTP (Hypertext Transfer Protocol), web üzerinde bilgi alışverişi için bir standarttır ve HTTPS (HTTP Secure), aynı protokolün güvenli bir versiyonudur, tüm verilerin SSL (Secure Sockets Layer) veya TLS (Transport Layer Security) ile şifrelenmesini sağlar.

Node.js HTTP veya HTTPS modüllerini kullanabilmek için ilk olarak projemize aşağıdaki gibi dahil etmeliyiz.

Şimdi her bir modülde kullanılabilen bazı metotları inceleyelim:

 http.createServer() :  Bu metot, yeni bir HTTP sunucusu oluşturur. requestListener isimli bir işlev, her istek ve yanıt çifti (request/response pair) için otomatik olarak eklenir.

Bu örnekte, bir HTTP sunucusu oluşturuldu. Bu sunucu, bir istek aldığında ‘Merhaba Dünya‘ yanıtını döndürür ve sunucu 8080 portunda dinlemeye başlar.

 http.get() :  Bu metot, bir HTTP GET isteği yapar ve otomatik olarak isteği sonlandırır. GET isteği, bir kaynağı almak (genellikle bir web sayfası) için kullanılır.

 Output :  

 http.request() :  Bu metot, bir HTTP isteği oluşturur. Bu, GET, POST, DELETE vb. herhangi bir türde olabilir ve isteği manuel olarak sonlandırmalısınız.

 Output :  

Bu örnekte, ‘https://jsonplaceholder.typicode.com/todos/1‘  adresine bir GET isteği gönderiyoruz. Her veri parçası geldiğinde, bu parçayı birleştiriyoruz. Tüm veri geldiğinde, sonucu konsola yazdırıyoruz. req.end() metodu ile isteği manuel olarak sonlandırıyoruz.

HTTPS modülü için örnekler aynıdır, tek fark modülün HTTPS olması ve bir SSL sertifikasının gerekmesidir. HTTPS ile çalışırken, genellikle bir ‘options‘ nesnesi kullanılır ve içinde ‘key‘ (özel anahtar) ve ‘cert‘ (sertifika) bilgileri bulunur.

Bu örnekte, bir HTTPS sunucusu oluşturduk ve bir SSL sertifikası kullandık. Bu sunucu, bir istek alındığında ‘Merhaba Dünya’ yanıtını döndürür ve sunucu 8000 portunda dinlemeye başlar.

res Nesnesi ile Birlikte Kullanabileceğimiz Metodlar

 res.write() :  Bu metot, bir veri parçasını yanıt akışına yazar.

 res.end() :  Bu metot, bir yanıtı sonlandırır ve isteğin tamamlandığını belirtir.

Bu örnekte, yanıtı ‘Merhaba Dünya’ ile başlattık ve ardından sonlandırdık. Yanıt sonlandığında bir mesaj logladık.

 res.setHeader() :  Bu metot, bir yanıt başlığını belirler.

Bu örnekte, ‘Content-Type’ başlığını ‘text/html’ olarak belirledik.

 res.StatusCode :  Bu özellik, yanıt durum kodunu belirler. Durum kodları HTTP yanıtlarının standart bir parçasıdır ve yanıtın durumunu belirtir.

Bu örnekte, yanıt durum kodunu 200 olarak belirledik.

 res.statusMessage :  Bu özellik, yanıt durum mesajını belirler. Durum mesajları HTTP yanıtlarının standart bir parçasıdır ve durum kodunun açıklamasını içerir.

Bu örnekte, yanıt durum mesajını ‘OK‘ olarak belirledik.

 res.getHeader() :  Bu metot, belirtilen yanıt başlığının değerini döndürür.

Bu örnekte, ‘Content-Type‘ başlığının değerini alıyoruz.

 res.removeHeader() :  Bu metot, belirtilen yanıt başlığını siler.

Bu örnekte, ‘Content-Type’ başlığını siliyoruz.

 res.writeHead() :  Bu metot, yanıt başlıklarını ve durum kodunu aynı anda belirlemeye izin verir.

Bu örnekte, yanıt durum kodunu 200 olarak ve ‘Content-Type‘ başlığını ‘text/html‘ olarak belirledik.

req Nesnesi ile Birlikte Kullanabileceğimiz Metodlar

 req.url :  Bu özellik, istek URL’sinin dize biçiminde bir temsilini döndürür.

 req.method :  Bu özellik, HTTP isteği için kullanılan metodu döndürür. Örneğin, ‘GET’, ‘POST’, ‘PUT’, ‘DELETE’ vb.

 req.headers :  Bu özellik, istek başlıklarının bir koleksiyonunu içerir.

 req.setTimeout(msecs, callback) :  Bu metot, bir isteğin zaman aşımına uğramasını belirlemek için kullanılır. msecs zaman aşımı süresini belirtir (milisaniye cinsinden). callback fonksiyonu zaman aşımı gerçekleştiğinde çağrılır.

 req.setEncoding() :  Bu metot, gelen verilerin hangi kodlama ile okunacağını belirler.

 req.on(event, callback) :  Bu metot, belirli bir olayın gerçekleşmesini dinlemek için kullanılır. En yaygın kullanılan olaylar ‘data‘ ve ‘end‘dir.

Bu örnekte, ‘data‘ olayını dinleyerek gelen veri parçalarını ve ‘end‘ olayını dinleyerek isteğin tamamlanmasını takip ediyoruz.

Node.js’in HTTP ve HTTPS modülleri hakkında benden bu kadar!

Bu modüllerin daha fazla özelliğini ve detayını Node.js‘in resmi belgelerinden öğrenebilirsiniz.

Umarım “Node.js HTTP/HTTPS Modülleri” başlıklı yazım sizin için faydalı olmuştur. Şu yazılar da ilginizi çekebilir:

Node.js path Modülü

Node.js url Modülü

Bir sonraki yazımda görüşmek üzere.

Happy coding!

Yorum Yazın