리그캣의 개발놀이터

노드js[Node.js] 웹 서버 구축하기 (window) 본문

개발 공부/Node.js(웹)

노드js[Node.js] 웹 서버 구축하기 (window)

리그캣 2018. 1. 18. 20:43

오늘은 node.js 를 이용하여 간단한 웹 서버를 만들거에요.


웹 서버에 대해 간단히 알아보고 싶다하면 이 페이지를 보시면 돼요!!


노드에는 기본으로 http 모듈을 사용하여 웹 서버 기능을 담당하는 서버 객체를 만들 수 있어요.


다음을 따라해 볼까요?


출처: do it node.js 프로그래밍


test1.js



var http = require('http');

//웹 서버 객체를 만듭니다
var server = http.createServer();

//웹 서버를 시작하여 3000번 포트에서 대기합니다.

var port = 3000;
server.listen(port, function(){
console.log('웹 서버가 시작되었습니다. : %d', port);
});



웹 서버 객체를 만들고 웹서버를 시작하는 코드입니다.


실행하면 다음과 같은 화면이 출력됩니다.


웹 서버가 시작되었습니다. : 3000


웹 서버가 실행되고 대기하고 있는 것을 볼 수 있습니다.


test2.js


var http = require('http');

// 웹 서버 객체를 만듭니다.
var server = http.createServer();

//웹 서버를 시작하여 3000번 포트에서 대기하도록 설정합니다.
var port = 3000;
server.listen(port, function(){
console.log('웹 서버가 시작되었습니다. : %d', port);
});

//클라이언트 연결 이벤트 처리
server.on('connection', function(socket){
var addr = socket.address();
console.log('클라이언트가 접속했습니다. : %s, %d', addr.address, addr.port);
});

//클라이언트 요청 이벤트 처리
server.on('request', function(req, res){
console.log('클라이언트 요청이 들어왔습니다.');
console.dir(req);
});

//서버 종료 이벤트 처리
server.on('close', function(){
console.log('서버가 종료됩니다.');
});



이번에는 웹서버를 만들고 대기하면서 클라이언트 접속이 오면 해당 이벤트에 맞게 출력해주는 소스코드 입니다.


'F5'키를 눌러 실행시키면 'test1.js' 와 별반 차이점이 없습니다.


웹 서버가 시작되었습니다. : 3000


그러나 웹 브라우저 창에 "http://localhost:3000" 을 입력해 줍니다.


이때 localhost는 현재 나의 ip 주소이고 3000 은 3000번 port로 접속하겠다는 뜻입니다.



다음과 같은 화면을 볼 수 있습니다.


웹브라우저는 아직 설정한게 없어서 나타나지 않지만 서버측에서는 클라이언트가 들어왔는지 확인 할 수 있습니다.


test3.js


var http = require('http');

// 웹 서버 객체를 만듭니다.
var server = http.createServer();

//웹 서버를 시작하여 3000번 포트에서 대기하도록 설정합니다.
var port = 3000;
server.listen(port, function(){
console.log('웹 서버가 시작되었습니다. : %d', port);
});

//클라이언트 연결 이벤트 처리
server.on('connection', function(socket){
var addr = socket.address();
console.log('클라이언트가 접속했습니다. : %s, %d', addr.address, addr.port);
});

//클라이언트 요청 이벤트 처리
server.on('request', function(req, res){
console.log('클라이언트 요청이 들어왔습니다.');
res.writeHead(200,{"Content-Type": "text/html; charset=utf-8"});
res.write("<!DOCTYPE html>");
res.write("<html>");
res.write(" <head>");
res.write(" <title>응답페이지</title>");
res.write(" </head>");
res.write(" <body>");
res.write(" <h1>노드제이에스로부터의 응답 페이지</h1>");
res.write(" </body>");
res.write("</html>");
res.end();
});

//서버 종료 이벤트 처리
server.on('close', function(){
console.log('서버가 종료됩니다.');
});


이런식으로 request 이벤트를 처리하는 콜백함수를 수정하시면 웹브라우저는 다음 화면은 출력합니다.



이런식으로 외부에서도 해당 ip를 통하여 페이지를 확인할 수 있습니다. ~^^

Comments