본문 바로가기

Programming/Node.js

5. http 모듈로 서버 만들기 (1) - 요청과 응답 [1]

node js logo image

 

 

 

 

기본적인 클라이언트와 서버 개념을 설명함에 있어서, 서버는 req를 받아서 res해 클라이언트에 보내게 됩니다. 결국 서버는 '요청 받는' 부분과 '응답을 보내는' 부분이 존재해야 합니다. 

 

이 구현은 우리가 살펴본 개념과 연결해 생각해 보면 간단합니다. 클라이언트로부터 요청 이벤트가 왔을 때, 서버에서 어떤 작업을 수행할 것인지 이벤트 리스너를 미리 등록해두는 것입니다. 이벤트 리스너를 등록해둔 예제를 만들어 보겠습니다. 

 

 

// createServer.js
const http = require('http');

http.createServer( (req, res) => {
    // response를 어떻게 할지 작성
} );

 

 

기본적으로 http 서버가 있어야 웹 브라우저의 req를 처리합니다. 그래서 http 모듈을 불러옵니다. http 모듈에 있는 createServer 메서드를 사용하는데, 인수로 req에 대한 콜백 함수를 넣게 됩니다. 요청이 들어올 때마다 실행됩니다. 

 

createServer의 콜백 부분에 존재하는 파라미터 req, res는 말 그대로 요청과 응답에 관한 정보를 담는 객체입니다. 현재로서는 아무 일도 일어나지 않기 때문에 응답 내용을 넣고, 서버와 연결하는 작업도 진행해 보겠습니다. 

 

const http = require('http');

http.createServer((req, res) => {
    res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8'});
    res.write('<h1>Hello World</h1>');
    res.end('<p>Hello Server</p>');
})
    .listen(8080, () => {
        console.log('8080번 포트 서버 대기 중');
    });

/* 출력
8080번 포트 서버 대기 중
*/

 

 

 

위와 같이 서버 파일을 우선 실행해 둡니다. 그리고 웹브라우저를 열어 http://localhost:8080 또는 http://127.0.0.1:8080으로 접속합니다.

 

 

그러면 위와 같은 화면을 볼 수 있습니다.