Node.jshttp 모듈은 서버와 클라이언트 간의 HTTP 통신을 처리할 수 있도록 도와주는 핵심 모듈 중 하나입니다. 이를 사용하여 HTTP 서버를 생성하고, 요청(request) 및 응답(response)을 관리할 수 있습니다.

HTTP server

HTTP server를 생성하는데 http 모듈을 사용합니다.

**http.createServer(requestListner)**는 http.Server의 새 인스턴스를 반환합니다.

requestListnerrequest 이벤트가 발생할 때 호출되는 콜백함수 입니다.

Server 인스턴스는 listen 메소드를 호출하여 접속 대기를 시작합니다.

// ./server.js

// 'http' 모듈을 가져옵니다. 이 모듈을 사용하여 서버를 생성하고 요청/응답을 처리할 수 있습니다.
const http = require("http");

// http 모듈의 createServer 메서드를 사용하여 서버를 생성합니다.
// createServer는 요청(req)과 응답(res) 객체를 매개변수로 가지는 콜백 함수를 받습니다.
http.createServer((req, res) => {
  // 응답 헤더를 설정합니다.
  // '200'은 성공적인 응답을 의미하는 HTTP 상태 코드입니다.
  // 'Content-Type': 'text/html; charset=utf-8' 설정으로 클라이언트(브라우저)에게 전송하는 콘텐츠가 HTML이고, UTF-8로 인코딩된다는 것을 알립니다.
  res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });

  // 응답 본문을 작성합니다.
  // 첫 번째 줄에 `<h1>hello Nodejs</h1>`를 전송합니다.
  res.write('<h1>hello Nodejs</h1>');

  // 응답 본문을 추가로 작성합니다.
  // 두 번째 줄에 `<p>hello</p>`를 전송합니다.
  res.write('<p>hello</p>');

  // 응답을 종료합니다. 응답 데이터를 모두 전송하고 클라이언트와의 연결을 닫습니다.
  res.end(); 

// 서버를 8080 포트에서 실행합니다.
// listen 메서드가 호출되면 서버가 요청을 대기합니다.
// 콜백 함수는 서버가 성공적으로 실행되었을 때 실행되며, 콘솔에 "8080 PORT is listening" 메시지를 출력합니다.
}).listen(8080, () => {
  console.log("8080 PORT is listening");
});

위 코드 작성후 터미널창에 node server.js를 입력하면 서버가 실행되고 http:localhost:8080에 접속하면 아래와 같은 화면이 나타나게 됩니다.

node server.js

캡처.PNG

fs 모듈로 html 파일 제공하기