요청과 응답 이해하기2


조현영님의 Node.js 교과서의 내용을 공부하여 정리한 내용입니다.


요청과 응답 이해하기2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const http = require("http");
const fs = require("fs");

http
.createServer((req, res) => {
// 요청이 들어오면 먼저 fs 모듈로 HTML 파일을 읽는다.
fs.readFile("./server2.html", (err, data) => {
if (err) {
throw err;
}
// data 변수에 저장된 버퍼를 그대로 클라이언트에 보내주면 된다.
// 이전 예제에서는 문자열을 보냈지만, 저렇게 버퍼를 보낼 수도 있다.
res.end(data);
});
})
.listen(8081, () => {
console.log("8081번 포트에서 서버 대기 중입니다!");
});
// 포트 번호를 8081번으로 바꿔주었다.
// server1.js를 종료했다면 8080번 포트를 계속 사용해도 된다.
// 하지만 종료하지 않았을 경우 server2.js가 같은 8080번 포트를 사용하면 에러가 발생하므로 8081번으로 바꾸었다.
// 이렇게 포트만 다르게 해서 동시에 여러 노드 서버를 실행할 수도 있다.
  • HTML 파일을 읽어와 클라이언트로 전송하는 데 성공했다.
  • 하지만 현재 서버는 클라이언트가 누구인지 모른다.
  • 그냥 요청이 올 때 모두에게 같은 응답을 보내고 있다.
  • 다음 절에서는 서버가 클라이언트가 누구인지 기억해서 클라이언트별로 다르게 응답하는 방법을 알아보자.