처음부터 시작하는 AWS와 Node.js 책자 본문 일부입니다.
https://itadventure.tistory.com/493
http 모듈을 가져왔다고 해서 홈페이지 서비스를 할 수 있는 것은 아닙니다.
사용법에 맞게 사용을 시작해주어야 하는데요 기본 사용법은 아래와 같습니다.
http.createServer(function (req, res) { : 홈페이지 접속 시 사용할 기능을 넣습니다. }).listen(서비스할 포트번호); |
아래 문장은 서비스할 포트번호로 홈페이지 서비스를 시작하라는 의미입니다.
그러면서 콜백함수(Callback Function)를 넣어주도록 되어 있는데요. ( 콜백함수 : 기능을 묶은 것을 ‘함수’라 부르며 어떤 사건이 발생하면 응답하는 함수를 콜백함수라 부릅니다. )
http.createServer(콜백함수).listen(서비스할 포트번호);
여기서 콜백함수의 모양은 아래와 같습니다.
function (req, res) { : 홈페이지 접속 시 사용할 기능을 넣습니다. } |
이 콜백함수는 바로 실행되는게 아니라 누군가 홈페이지에 접속할 때만 실행이 됩니다. ( 콜백 )
앞서 사용된 소스를 살펴보실까요?
http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'}); res.end('안녕! 매우 멋진 Node.js\n'); }).listen(8080); |
Node.js 를 시작하면 처음에는 이 부분만 실행됩니다.
http.createServer( 콜백함수… ).listen(8080); |
8080 포트로 서비스를 시작하고 누군가 홈페이지에 접속하기를 무한대기하는 행동 그 자체를 의미합니다. 홈페이지 서비스는 항시 접속가능해야 하니까요.
이제 누군가 홈페이지 접속을 하면 콜백함수… 부분이 실행됩니다. 바로 아래 스크립트이지요.
function (req, res) { res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'}); res.end('안녕! 매우 멋진 Node.js\n'); } |
괄호 안에는 (req, res) 2가지가 보이는데요. req 는 나중에 살펴보고, res부터 살펴보겠습니다.
res 는 response(응답)의 약어입니다. 그래서 접속한 사용자에게 응답하는 통로로 사용되는데요. 이렇게 전달되는 (req, res) 를 파라미터(Parameter)변수라고 부릅니다. ( 줄여서 파라미터 )
첫번째 줄에는 사용자가 접속한 웹 브라우저에 머리말을 보내는데요. 머리말을 보내는 명령이 res.writeHead 입니다. 200은 정상(OK)이라는 정의된 코드를 의미합니다.
res.writeHead(200. {페이지유형});
{페이지유형} 부분에는 접속한 URL 주소가 웹페이지인지 그림파일인지 음악이나 영상 파일인지의 정보를 보내줍니다.
아래 내용을 넣을 경우, 컨텐츠 유형(Content-Type) 은 웹페이지(text/html)이고,
본문의 내용이 유니코드(charset=utf-8)라는 국제 표준 코드를 사용한다는 내용을 응답합니다.
{'Content-Type': 'text/html; charset=utf-8'}
사용자의 웹 브라우저에는 보이지는 않지만 머리말(헤더)는 꼭 먼저 응답해 주어야 합니다.
이어서 웹 브라우저에 출력할 내용을 보내주는데요. res.end(‘본문’) 명령은 본문 내용을 전송해주고, 전송이 끝났다는 신호를 보내주는 명령입니다.
res.end('안녕! 매우 멋진 Node.js\n');
그래서 웹 브라우저에서 아래와 같은 결과를 보실 수 있는 것이지요.
필요하신 분에게 도움이 되시길 바랍니다. 그러면 이만 :)
도움이 되셨다면 공감 한방, 댓글은 굿잡!
감사합니다~
다음 이야기 : https://itadventure.tistory.com/503