간단한 HTTP 서버를 만드는 기본적인 Node.js

2024. 11. 17. 15:50정보처리,전산/NODEJS

반응형
// http 모듈을 불러옴. 이를 통해 HTTP 서버를 생성
const http = require('http');

// 서버가 요청을 수신할 포트 번호 지정
const port = 4000;

// HTTP 서버 생성
// 클라이언트 요청(req)과 응답(res)을 처리하는 콜백 함수 전달
const server = http.createServer((req, res) => {
    // 요청 URL이 '/home'인 경우 JSON 데이터를 반환
    if (req.url === '/home') {
        // 응답 헤더 설정: HTTP 상태 코드 200(성공)과 JSON 형식 지정
        res.writeHead(200, { 'Content-Type': 'application/json' });
        // JSON 데이터를 문자열로 변환하여 클라이언트에 전송
        res.end(JSON.stringify({ a: "a", b: "b" }));

    // 요청 URL이 '/about'인 경우 HTML 데이터를 반환
    } else if (req.url === '/about') {
        // 응답 헤더에 콘텐츠 타입을 HTML로 설정
        res.setHeader('Content-Type', 'text/html');
        // HTML 문서를 작성하고 응답에 추가
        res.write('<html>');          // HTML 시작 태그
        res.write('<body>');          // Body 시작 태그
        res.write('<h1>About page</h1>'); // H1 제목 추가
        res.write('</body>');         // Body 종료 태그
        res.write('</html>');         // HTML 종료 태그
        res.end();                    // 응답 종료

    // 위 조건에 해당하지 않는 요청 경로는 404 Not Found로 처리
    } else {
        // HTTP 상태 코드를 404로 설정
        res.statusCode = 404;
        // 클라이언트에 간단한 메시지와 함께 응답 종료
        res.end('Page not found');
    }
});

// 서버를 시작하여 지정한 포트에서 요청을 수신
server.listen(port, () => {
    // 서버가 시작되면 콘솔에 포트 정보를 출력
    console.log(`Listening on port ${port}`);
});

 

 

 

 

 

 

코드 해석

  1. http 모듈 불러오기:
    • Node.js 내장 모듈인 http를 불러온다.
    • 이 모듈은 HTTP 서버를 생성하고 클라이언트 요청을 처리할 수 있도록 지원한다.
  2. 포트 번호 설정:
    • 서버가 요청을 수신할 포트 번호를 설정한다.
    • 일반적으로 로컬 개발 시 3000, 4000, 5000 같은 포트를 많이 사용한다.
  3. 서버 생성:
    • http.createServer 메서드로 서버를 생성한다.
    • 클라이언트 요청(req)에 대한 응답(res)을 처리하는 콜백 함수를 제공한다.
  4. 요청 처리 분기:
    • req.url을 확인해 요청된 URL 경로에 따라 적절히 분기한다:
      • /home: JSON 형식의 데이터를 반환한다.
      • /about: 간단한 HTML 페이지를 반환한다.
      • 기타 경로: HTTP 상태 코드 404를 반환한다.
  5. JSON 응답 (/home):
    • Content-Type을 application/json으로 설정해 JSON 데이터임을 명시한다.
    • JSON.stringify로 JavaScript 객체를 JSON 문자열로 변환해 반환한다.
  6. HTML 응답 (/about):
    • Content-Type을 text/html로 설정해 HTML 응답임을 명시한다.
    • 간단한 HTML 문서를 작성하고 응답으로 보낸다.
  7. 404 처리:
    • 요청 경로가 처리 가능한 경로가 아니면 HTTP 상태 코드 404를 설정하고, 응답을 종료한다.
  8. 서버 시작:
    • 지정된 포트(port)에서 서버를 시작하고 요청을 대기한다.
    • 서버가 시작되면 콘솔에 메시지를 출력한다.
 
 

 

 

반응형