Programming Blog

Node js 간단한 웹 애플리케이션 본문

Node js/생활 코딩 Node js

Node js 간단한 웹 애플리케이션

Go-ong 2019. 2. 3. 16:40

  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    const http = require('http');
     
    const hostname = '127.0.0.1';
    const port = 1337;
     
    http.createServer((req, res) => {
      res.writeHead(200, { 'Content-Type''text/plain' });
      res.end('Hello World\n');
    }).listen(port, hostname, () => {
      console.log(`Server running at http://${hostname}:${port}/`);
    });
    cs

    - 위의 코드는 웹브라우저를 통해 요청한 내용을 받아서 Hello World라는 텍스트를 전송하여 IP와 Port를 이용해 출력한다는 의미이다.
    - server를 구축하기 위해 인터넷, 도메인 네임, IP, Port 등의개념을 숙지해야한다.

  • 인터넷의 동작 방법
    - 컴퓨터와 컴퓨터가 인터넷을 통하여 연결되어 작업을 처리한다.
    - 클라이언트(고객, 갑)와 서버(제공하는 쪽, 을)가 있고, 요청하고 응답(제공)하는 관계(갑, 을 관계)에 있다.
    웹 브라우저가 설치되어있는 컴퓨터가 클라이언트이다. 예를 들어 http://1.com이라는 도메인 주소를 웹 브라우저에 치게되면,
    1.com에 해당되는 서버에 접속하여 어떠한 정보를 요청하는 것이 클라이언트의 역할이고, 1.com이라는 서버는 요청한 정보를 클라이언트에게 응답(제공)하는 것이 서버의 역할이다.
    웹 사이트에 접속을 할 때 1.com이라는 주소의 컴퓨터를 직접 찾아가지 않고, 1.com은 도메인 네임이라고해서 사람이 기억하기 쉽게 만들어놓은 이름이고 실제로 접속은 컴퓨터의 도메인 네임과 일치하는 ★IP주소를 통해서 접속을 하게 된다.
    이것이 인터넷이 돌아가는 기본적인 동작 방법이다.

  • 서버
    - 서버 컴퓨터에는 여러 개의 데이터베이스 서버, 채팅 서버, 게임 서버, 웹 서버 등의 다양한 종류가 설치되어 있을 수 있고,
    요청에 대해 어떤 서버 애플리케이션을 연결해줘서 그 애플리케이션이 응답할 수 있게 하느냐에 대한 부분을 다룬다.

  • 요청한 서버에 대해 알맞은 서버를 제공하는 방법
    - 컴퓨터에는 0 ~ 65535개의 포트가 있고 각 포트에는 어떠한 기능을 가진 서버가 구성되어있다.
    예를 들어, 클라이언트가 웹 서버를 요청했을 때 인터넷은 서버의 80번 포트를 연결시켜주고 80번 포트에 해당되는 ,listen하고있는 웹 서버를 호출하여 웹 서버가 응답할 수 있게 되는 것이다. 
    컴퓨터는 웹브라우저를 통해서 접속했다는 것을 http로 알 수 있기 때문에 포트 번호를 작성하지 않고도 80번 포트에 해당되는 웹 서버와 연결시켜줄 수 있는것이다.
    포트 생략이 가능한 이유는 http를 통해서 접속하는 경우에는 80번 포트를 사용하는 것으로 약속이 되어있기 때문에 생략이 가능하다.
    접속이 들어왔을 때 해당되는 포트로 컴퓨터가 연결을 해주기 때문에 포트 번호에서 듣고있는, listen하고 있는 웹서버가 요청을
    받아서 응답을 할 수 있게 되는것이다. 이것이 포트라는 개념이다.

  • 코드 해석
    - createServer로 서버를 하나 만들고 웹 서버가 1337번 포트를 listen하도록 시키라는 명령이고,
    사용자가 접속했을 때 127.0.0.1로 접속한 사용자에 대해서 응답하라는 명령이다.
    - 응답 결과는 res.end 의 Hello World라는 텍스트이다.


'Node js > 생활 코딩 Node js' 카테고리의 다른 글

express 도입  (0) 2019.02.07
동기와 비동기 프로그래밍  (0) 2019.02.03
콜백(Callback) 함수  (0) 2019.02.03
모듈과 NPM  (0) 2019.02.03
Node js란?  (0) 2019.02.03
Comments