Notice
Recent Posts
Recent Comments
Today
Total
05-02 00:04
Archives
관리 메뉴

Jeongchul Kim

NodeJs - 모듈(http) 본문

Computer Language

NodeJs - 모듈(http)

김 정출 2016. 2. 23. 14:21


NodeJs - 모듈(http)


http 모듈

NodeJs의 가장 기본적인 웹 모듈

http 웹 서버와 클라이언트를 생성


request : 요청 메시지 - url, parameter 등 수신

response : 응답 메시지 : 사용자에게 적절한 페이지 전송, 쿠키 저장 및 추출, 페이지 이동(forward)


Server 객체

객체 생성 : http.createServer()

주요 메소드

- listen 서버 대기

- close() 서버 종료

주요 이벤트

- connection : client 접속

- request : client 요청 수신

- close : 서버 종료


var http = require('http');

var server = http.createServer();

server.on('connection',function(socket){

console.log('connected :'+socket.localAddress);

});

server.on('request',function(request,response){

var url = request.url;

console.log('url :'+url);

console.log('method :'+request.method);

Header

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

Body

response.write('<h1>Welcome to NodeJs</h1>');

response.write('<h2>made by jeongchul</h2>');

response.end();

});

server.on('close',function(){

console.log('closed');

});

server.listen(8080,function(){

console.log('server is running on 8080 ...');

});






telnet localhost 8080

GET /index.html HTTP/1.1 (enter 2번)



Browser 실행하여 localhost:8080 입력

주소창에

localhost:8080/abc.html



var http = require('http');

var server = http.createServer(function(request,response){

var url = request.url;

console.log('url :'+url);

console.log('method :'+request.method);

/* Header */

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

/* Body */

response.write('<h1>Welcome to NodeJs</h1>');

response.write('<h2>made by jeongchul</h2>');

response.end();

});

/*server.on('connection',function(socket){

console.log('connected :'+socket.localAddress);

});

server.on('request',function(request,response){

var url = request.url;

console.log('url :'+url);

console.log('method :'+request.method);

Header

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

Body

response.write('<h1>Welcome to NodeJs</h1>');

response.write('<h2>made by jeongchul</h2>');

response.end();

});

server.on('close',function(){

console.log('closed');

});

server.listen(8080,function(){

console.log('server is running on 8080 ...');

});

*/




request 객체

request 이벤트 리스너 첫 번째 매개변수로 전달

client에서 요청한 내용을 표현


주요 속성

method : GET/POST/PUT/DELETE

url : 요청 url

headers : request header

httpVersion : http1.1 or http1.0


페이지 구분

url 모듈 활용 : url.parse(requset.url).pathname




webserver.js


var http = require('http');

var fs = require('fs');

var url = require('url');

var server = http.createServer(function(req,res) {

var pathname = url.parse(req.url).pathname;

if(pathname === '/') {

pathname = '/index.html';

}

pathname = './docRoot' + pathname;

console.log('req : '+req.url+', path : '+pathname);

fs.readFile(pathname,function(err,data){

if(err) {

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

res.end('<h1>404, Not Found</h1>');

}else {

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

res.end(data);

}

});

});

server.listen(8080, function() {

console.log("server is running on 8080 ...");

});





'Computer Language' 카테고리의 다른 글

Python 3 기본 문법  (0) 2017.02.04
Web-Crawler BeautifulSoup Python  (0) 2017.01.06
NodeJs - 모듈(FileSystem, Event, Network)  (0) 2016.02.23
NodeJs  (0) 2016.02.23
Eclipse Webserver + HTML Project  (0) 2016.02.22
Comments