반응형

서버에는 용청을 받는 부분과 응답을 보내는 부분이 있어야 한다.

즉, 웹 상에서 http 서버가 있어야 웹 브라우저의 요청을 받고 응답을 다시 클라이언트에게 보내줄 수 있다.

node로 웹서버를 만들기 위해서 바로 http 내장 모듈을 활용할 수 있다.

const http = require('http');
http.createServer((req, res)=>{
    //res.writeHead는 응답에 대한 정보를 기록하는 메서드
    res.writeHead(200, {'Content-Type' : 'text/html; charset=utf-8'});
    
    //데이터가 브라우저에 띄우게 하는 메서드
    res.write('<h1>Hello Node!</h1>');

    //응답을 종료하는 메서드
    //만약에 인수가 있다면 그 데이터도 클라이언트로 보낸 후 응답을 종료
    res.end('<p>Hello Server!</p>');
    console.log('실행');
}).listen(8080, ()=>{
  console.log('8080번 포트에서 서버 대기 중');  
});

먼저 require 메서드에 문자열 'http'인수를 넣은 후 상수 http에 할당한다.

할당된 http 모듈에는 createServer 메서드가 있다. 메서드의 인수로 요청에 대한 콜백함수를 넣을 수 있으며

요청이 들어올때마다 매번 콜백 함수가 실행된다. 따라서 이 콜백 함수에 응답을 적으면 된다.

결국 이벤트 리스너를 가진 노드 서버를 만드는 것으로 생각하면된다.

이것을 실행하면

이런 화면으로 나온다.

여기서 localhost란 현재 컴퓨터의 내부 주소를 말한다. 자신의 컴퓨터에만 접근할 수 있으며 서버를 개발할 때 테스트용으로 많이 사용하는 주소다. localhost 대신에 127.0.0.1을 사용해도 좋다.

8080은 포트다. 포트 번호를 생략해서 칭한다. 포트 번호는 0~65535의 숫자이며 범위에 따라 용도가 결정되어있다.

애플리케이션 서비스에 따라 사용하는 포트 번호를 임의로 결정할 수 있다. 데이터베이스와 통신도 해야하고 FTP 요청을 처리하기도 한다.

일반적으로 HTTP 웹서버라면 80번 포트와 같이 포트 번호가 정해져 있기에 포트에 따라 서비스를 식별할 수 있다.

따라서 서버는 프로세스에 포트를 다르게 할당해 들어오는 요청을 구분한다.

반응형

+ Recent posts