Node.js

[Node.js] 공부 2 일차 - HTTP 서버 소스 분석

남익 2017. 8. 6. 18:18
반응형

[Node.js] 공부 2일차


1. httpServer.js 소스 분석  

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
//httpServer.js
var http = require('http');  
 
//HTTP 서버 시작  
http.createServer(function (req, res) {  
    var data = []; 
    /* 응답변수 오류 이벤트 */ 
    res.on('error'function(err) {  
        logger.log("event RES error : " + err);  
    });  
    /* 요청변수 오류 이벤트 */ 
    req.on('error'function(err) {  
        logger.log("event REQ error : " + err);  
    });  
    /* 요청 시 데이터 수신 이벤트 */ 
    req.on('data'function (chunk) {  
        data.push(chunk);  
        logger.log(" event data chunk length : " + chunk.length);  
    });  
    
    req.on('end'function () { 
        res.writeHead(200, {'Content-Type': 'text/plain'}); 
        res.end('Hello World!'); 
    });  
}).listen(9080);
cs

var http = require('http');  

  : Node.js의 "http" 관련 모듈을 가져와서 var http 변수에 담아놓는다.


http.createServer([requestListener])  

  : http 서버를 생성한다.


server.listen([port][, hostname][, backlog][, callback])  

  : 서버의 상태를 입력받은 파라미터의 정보로 "listen" 상태로 변경하여 요청을 기다린다.

   - 입력 파라미터 : port <Number>, hostname <String>, backlog <Number>, callback <Function>

   - port <Number>만 입력하여 해당 포트의 요청을 기다린다. 그외의 파라미터는 생략 가능하며 추가적인 기능에 대한 내용은 확인이 되지 않아서 추후 검색하게 되는 경우 추가 내용 정리 필요할 것 같습니다.


response.writeHead(statusCode[, statusMessage][, headers])  

  : 요청에 대한 응답 메시지의 헤더를 생성한다.

   - 입력 파리미터 : statusCode <number>, statusMessage <string>, headers <Object>

   - statusCode <number> http 상태코드이며, 정상적인 요청에 대한 응답의 경우 "200"으로 설정한다.

     추가 http 상태코드 정보 : https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C

   - statusMessage <string> 생략 가능, 실제 내용에 대한 이해를 하지 못해서 따라서 사용하였습니다.


response.end([data][, encoding][, callback])  

  : 요청에 대한 응답 메시지를 전송한다.

   - 입력 파라미터 : data <string> | <Buffer>, encoding <string>, callback <Function>

   - data <string> 데이터를 입력하여 응답 메시지에 넘겨준다. 그외 입력 파라미터는 생략 가능하며 추후 내용 추가시 추가 작성하겠습니다.


res.on('error', function(err) {})  

  : 해당 이벤트를 연결한다.

   - 입력 파라미터 : event, callback <Function>

   - event 연결할 이벤트를 작성한다. 실 동작 중 해당 이벤트 호출 시 "callback"으로 정의된 함수를 호출한다. 해당 이벤트는 API 문서를 참조하여 상황에 따라서 적용하면 됩니다. 적용한 이벤트 : "error <오류 발생 시>", "data <데이터 수신 시>", "end <데이터 수신 종료 및 연결 해제 시>"


Node.js http API 참조 문서 : https://nodejs.org/dist/latest-v6.x/docs/api/http.html

Node.js http 트랜젝션 해부 : https://nodejs.org/ko/docs/guides/anatomy-of-an-http-transaction/

반응형