[Node.js] 인터넷 기본 동작

인터넷의 동작 방법

클라이언트와 서버

인터넷은 클라이언트(웹브라우저가 설치된 컴퓨터)가 필요한 것을 요청하고,
이를 서버가 제공하는 방식으로 실행된다.

도메인 네임

도메인 네임은 해당 서버의 컴퓨터에 접속하기 쉽게 한 이름으로써, 실제로는 도메인과 일치하는 ip 주소(ip address)로 접속한다.

포트

하나의 서버에는 포트가 0~65535까지 있으며, 특정 포트에 웹서버가 리스닝(lisening) 하면 도메인 네임뒤에 포트번호를 써서 리스닝 한 서버를 연결 할 수 있고, 포트번호는 생략 가능하다.
ex) http://a.com:80 => a의 컴퓨터의 80번째 포트에 listening 한 서버를 연결 (여기서 :80은 생략가능)

node.js

아래 코드는 node.js에서 기본적으로 제공하는 웹 서버 생성 “hello world” 예시이며, 각각의 설명에 대해 주석을 달아놨다.

const http = require("http");

const hostname = "127.0.0.1";
//127.0.0.1로 접속한 사용자에게 응답
const port = 3000; // 3000번 째 port 변수

const server = http.createServer((req, res) => {
  // createServer로 서버를 만듬
  res.statusCode = 200;
  res.setHeader("Content-Type", "text/plain");
  res.end("Hello World"); // 응답 결과
});

server.listen(port, hostname, () => {
  // 서버가 이 컴퓨터에 listening하게 시킴 , port와 hostname 전달
  console.log(`Server running at http://${hostname}:${port}/`);
});