목차
- http 모듈 정의
- http 모듈 구문
- http 모듈로 서버 생성하기
- HTTP 헤더 추가
- Query 문자열 읽기
- 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 q = 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
최신댓글