Programming/웹프로그래밍

[NodeJS] Web Server 만들기 - HTTP모듈 사용

쌍쌍바나나 2016. 4. 19. 07:48
반응형

들어가며

  지난 포스팅에서는 HTTP에 대해서 설명한바 있습니다. HTTP란? 특징 및 구성요소 - Request, Response, Structure, Method, Reponse Code ] 

  NodeJs에서 가장 기본적으로 사용되는 웹 모듈로서 http를 사용합니다.. http모듈을 사용해서 웹 서버와 클라이언트를 쉽게 생성할 수 있습니다. 서버는 request의 요청 메시지로서 url, parameter 등을 수신하고, response인 응답메시지로서 사용자에게 적절한 페이지를 전송, 쿠키 저장 및 추출, 그리고 페이지 이동의 역할을 합니다. 이번 포스팅에서는 http모듈을 사용해 간단한 Web Server를 만들어보겠습니다. 

소스코드

http 모듈을 import한 뒤에 http.createServer를 통해 서버를 생성할 수 있습니다. parameter로는 callback함수를 넣어주면 됩니다. 생성을 한 뒤에 server.listen을 통해 서버에서 응답을 요청 받을 준비를 합니다. 그렇게 되면 클라이언(브라우저)에서 요청을 하게 되면 해당 메소드가 호출이 됩니다. "http://localhost:9999"로 요청을 하면 콘솔에는 요청된 url이 입력이 되고, "Hi Banana"의 텍스트를 클라이언트에게 응답을 해주고, 결과적으로 브라우저에 Hi Banana가 출력되는 것을 볼 수 있습니다. 또한 server.on을 통해 'connection'이 되었을때 localAddress를 확인을 할 수 있습니다.
var http = require('http');
// server 객체 생성 http.createServer([callback])
var server = http.createServer(function(req, res) {
	console.log('req:'+req.url);
	res.writeHead(200, {'Content-Type':'text/html'});
	res.end("Hi Banana");
});

server.on('connection', function(socket) {
	console.log('connection : ' + socket.localAddress);
});
// listen (port, [, callback]) 서버 대기 (실행) 메서드
server.listen(9999, function() {
	console.log('server is listeneing on 9999');
});

실행화면

Chrome 브라우저에 현재 listen하고 있는 port번호를 입력해 주면 web server에 접속이 가능합니다. res에 담긴 Hi Banana가 화면에 출력되는 것을 확인 할 수 있습니다. 



반응형