티스토리 뷰

Development/Node.js

Node.js - http

ShinyOcean 2021. 6. 30. 14:24

안녕하세요 :)

 

이번 포스팅에서 다루어볼 내용은 http 모듈입니다.

Node.js 의 기본 내부 모듈인 http는 웹서버의 기능을 수행할수 있는 서버 객체를 만드는 메소드를 포함하고 있습니다.

 

 

간단한 예제 코드를 통해 웹서버를 만들어 보겠습니다.

 

 

위의 코드는 http 모듈을 사용하여 웹서버를 가동시킨 코드입니다. createServer()메소드를 호출하면 서버 객체가 반환되고 이 서버객체의 listen 메소드를 호출하면 서버가 가동됩니다. 포트 번호를 3000번으로 지정하여 해당 포트에서만 클라이언트의 요청을 대기하도록 하였습니다. 여기서 포트는 일종의 통로 라고 생각하시면됩니다.

 

일반적으로 웹 브라우저를 통해 클라이언트에서 http 프로토콜로 요청한 정보를 처리후 응답해주는것이 웹서버의 역할입니다 이때, PC 또는 서버머신에는 6만개가 넘는 포트가 존재하기 때문에 위의 예제에서는 3000번으로 응답해주었습니다. 

 

그런데 이더넷 카드(랜카드)가 여러개 존재할경우 서버에서 사용할 인터넷 주소가 필요합니다. 이것이 바로 IP입니다. 인터넷 프로토콜의 약자이죠! 이런 경우에는 listen()메소드를 호출할때 ip주소를 직접 지정해야합니다. 아래와 같습니다.

 

 

저의 경우 카페에서 작업하면서 사설 와이파이 ip를 사용해서  192.168.0.17로 호스팅했지만 다를수 있으니 ps에서 ipconfig명령을 통해 알아내세요!

 

 

이번에는 클라이언트가 서버에 요청할때 발생해는 여러 이벤트에 대한 간단한 예제를 살펴보겠습니다.

 

 

 

포트를 3000번으로 하고 호스트를 localhost로 했을때 server.on메소드에서 여러 이벤트에 대한 처리 입니다. 물론 구현한 웹페이지가 없기 때문에 브라우져에서 결과물로 출력되는것은 없지만 콘솔창의 결과를 확인해보면 클라이언트가 접속한 것을 확인해 볼수 있었습니다. 그렇다면 request 이벤트처리에 res 객체와 간단한 html태그를 이용해서 브라우져에 눈에 보이는 결과를 출력해보겠습니다. 아래와 같습니다.

 

 

그런데 이렇게 클라이언트의 요청이 들어올때 이벤트 처리로 웹페이지를 응답하는것이 아닌 서버객체를 선언할때 미리 만들어 둘수도 있습니다. 아래와 같습니다.

 

 

 

다음은 클라이언트에서 요청이 있을때 파일을 읽어 응답해보겠습니다.

지난 포스팅을 통해 우리는 fs모듈을 통해 파일을 다루는 방법에 대하여 다루어보았습니다. 이번에는 fs 모듈의 readFile메소드를 사용해서 요청에 따른 응답을 해볼것인데요 방법은 지난포스팅의 내용을 잘 숙지했다면 위의 내용과 융합하는것밖에 추가되는것이 없기떄문에 간단합니다. 아래와 같습니다.

 

 

<타겟 파일>

 

 

<fs 모듈을 이용한 파일내용 read, res객체를 이용한 write>

 

 

 

<결과>

 

'Development > Node.js' 카테고리의 다른 글

Node.js - express  (1) 2021.07.05
Node.js - 다른 웹사이트의 데이터  (0) 2021.07.04
Node.js - file  (0) 2021.06.30
Node.js - event  (0) 2021.06.30
Node.js - url  (1) 2021.06.29
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함