• Q&A
  • 회원가입
  • 로그인

[basic] Node.js - HTTP Module (데이터 전송 모듈)

21  

http 모듈 정의

 

HTTP (Hyper Text Transfer Protocol)를 통해 데이터를 전송해 브라우저에 데이터를 뿌려주는 역할 함.

 

 

http 모듈 구문

 

var http = require('http');

 

 

http 모듈로 서버 생성하기.


1.

http.createServer() 메서드 이용해서,

서버 포트를 수신하고 클라이언트에 응답을 제공하는 HTTP 서버 생성.

 


[예제]

 

1.

아래 소스를 c:\User\사용자명\hz.js 파일로 저장.

 

var http = require('http');


// 서버 객체 생성.

http.createServer(function (req, res) {

  res.write('Homzzang.com'); // 클라이언트에게 응답 쓰기.

  res.end(); // 응답 끝내기.

}).listen(8080); // 서버는 8080 포트로 클라이언트와 소통.

 

PS.

http.createServer() 메서드에 전달된 함수는 누군가 포트 8080에서 컴퓨터에 접근하려고 할 때 실행.

 

2.

아래 명령어로 Node.js 파일 시작 설정.

C:\Users\사용자명>node hz.js

 

3.

브라우저로 접속해 출력 확인.

http://localhost:8080/

 

 

HTTP 헤더 추가.

 

HTTP 서버의 응답이 HTML로 표시돼야 할 경우, 

writeHead() 이용해 응답 콘텐츠에 맞는 HTTP 헤더 제공 필요.

 


[구문]

 

res.writeHead(state, header)

 


[매개변수]

 

state

필수. 상태를 나타내는 숫자 코드. 

(예: 200 : 모두 정상)

 

header

필수. 응답할 콘텐츠에 맞는 헤더 정보.

 


[예제]

 

var http = require('http');

http.createServer(function (req, res) {

  res.writeHead(200, {'Content-Type': 'text/html'});

  res.write('Homzzang.com');

  res.end();

}).listen(8080);

 

 

Query 문자열 읽기.

 

http.createServer() 메서드로 전달된 함수는 req 매개변수 갖음.

(예) http.createServer(function (req, res) { ...

 

req 

필수. http.IncomingMessage 객체처럼, 클라이언트의 요청을 의미.

※ 이 객체는 도메인 이름 뒤 URL 부분을 담은 "url"  속성을 갖음.

req.url 형식으로 해당 url 속성에 접근 가능.

 


[예제]

 

1.

아래 소스를 c:\User\사용자명\hz.js 파일로 저장.

 

var http = require('http');

http.createServer(function (req, res) {

  res.writeHead(200, {'Content-Type': 'text/html'});

  res.write(req.url);

  res.end();

}).listen(8080);

 

 

2.

아래 명령어로 Node.js 파일 시작 설정.

C:\Users\사용자명>node hz.js

 

3.

아래 주소로 각각 접속해 출력 결과 확인.

 

http://localhost:8080/summer

결과값: /summer

 

http://localhost:8080/winter

결과값: /winter

 

 

Query 문자열 분할.

 

※ url.parse() 메서드 :  URL 주소를 읽을 수 있는 단위로 분할.

※ url.parse() 메서드를 사용하려면, url 모듈을 인클루드 필요.

※ parse() 메서드 반환 객체의 속성값 종류는 url() 모듈 예제 참고.

※ query 속성은 URL 주소의 쿼리 부분을 객체 형식으로 반환.

 (예제) { open: 2012, site: 'homzzang.com' }

 


[구문]

 

var = url.parse(req.url, true).query; // 객체 형식으로 반환.



[예제]

 

1.

아래 소스를 c:\User\사용자명\hz.js 파일로 저장.

 

var http = require('http');

var url = require('url');


http.createServer(function (req, res) {

  res.writeHead(200, {'Content-Type': 'text/html'});

  var q = url.parse(req.url, true).query;

  var txt = q.open+ " " + q.site;

  res.end(txt);

}).listen(8080);

 

2.

아래 명령어로 Node.js 파일 시작 설정.

C:\Users\사용자명>node hz.js

 

3.

아래 주소로 접속해 출력 결과 확인.

http://localhost:8080/?open=2012&site=homzzang.com

결과값: 2012 homzzang.com

 

 

PS. url 모듈 : https://homzzang.com/b/njs-7

 


방문자 수

오늘 1,275
어제 1,290
최대 2,397
이달 37,872
전체 985,618
Since 2012