• 회원가입
  • 로그인
  • 구글아이디로 로그인

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

1,610  
목차
  1. http 모듈 정의
  2. http 모듈 구문
  3. http 모듈로 서버 생성하기
  4. HTTP 헤더 추가
  5. Query 문자열 읽기
  6. Query 문자열 분할

 

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


 


분류 제목
basic Node.js - Home
basic Node.js - Intro (소개)
basic Node.js - Start (시작) - 사용 환경 구축
basic Node.js - Modules (모듈)
basic Node.js - HTTP Module (데이터 전송 모듈)
basic Node.js - File System Module (파일 시스템 모듈)
basic Node.js - URL Module (주소 처리 모듈)
basic Node.js - NPM (노드 패키지 관리자)
basic Node.js - Events (이벤트)
basic Node.js - Upload Files (파일 업로드) 2
basic Node.js - Email (이메일 보내기)
mysql Node.js - MySQL 설치・연결 + 쿼리 보내기
mysql Node.js - MySQL Create Database (DB 생성)
mysql Node.js - MySQL Create Table (테이블 생성) ※ Primary key 설정.
mysql Node.js - MySQL Insert Into (데이터 삽입)
mysql Node.js - MySQL Select From (데이터 선택)
mysql Node.js - MySQL Where (조건절)
mysql Node.js - MySQL Order By (정렬 순서)
mysql Node.js - MySQL Delete From (데이터 삭제)
mysql Node.js - MySQL Drop Table (테이블 삭제)
1/4
목록
찾아주셔서 감사합니다. Since 2012