HTTP Module

  • var http = require('http');

HTTP μ„œλ²„μš© 클래슀

  • http.Server : HTTP μ„œλ²„
  • http.IncomingMessage : HTTP μ„œλ²„μ˜ μš”μ²­ λ©”μ‹œμ§€, Readable Stream
  • http.ServerResponse : HTTP μ„œλ²„μ˜ 응닡 클래슀

HTTP ν΄λΌμ΄μ–ΈνŠΈ 클래슀

  • http.Client : HTTP ν΄λΌμ΄μ–ΈνŠΈ
  • http.ClientRequest : HTTP ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­ λ©”μ‹œμ§€
  • http.IncomingMessage : HTTP μ„œλ²„μ˜ 응닡 λ©”μ‹œμ§€

HTTP Server

  • var server = http.createServer(requestListener)

Event

  • request : ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­ 도착
  • connection : μ†ŒμΌ“ μ—°κ²°
  • close : μ„œλ²„ μ’…λ£Œ

Method

  • server.listen()
  • server.close()
  • server.setTimeout()

HTTP Server λ™μž‘ν•˜κΈ°

var http = require('http');
var server = http.createServer(function(req, res) {
	res.write('Hello World');
	res.end();
});
 
server.listen(3000);

Port

  • 0 ~ 1023 : well-known port. κ΄€λ¦¬μž κΆŒν•œ ν•„μš”
  • 1024 ~ 49151 : registered port
  • 49152 ~ 65535 : dynamic port

HTTP Client

  • http.request(options, callback)
  • http.get(options, callback)

ν΄λΌμ΄μ–ΈνŠΈ μš”μ²­ 뢄석

var http = require('http');
var server = http.createServer(function(req, res) {
 
	console.log('Method : ', req.method);
	console.log('url : ', req.url);
	console.log('headers : ', req.headers['user-agent']);
 
	res.write('Hello World');
	res.end();
}).listen(3000);

응닡 λ©”μ‹œμ§€

  • res.writeHead()
  • res.setHeader()
var http = require('http');
var server = http.createServer(function(req, res) {
	res.statusCode = 200;
	res.statusMessage = 'OK';
	res.setHeader('content-type','text/plain');
 
	res.write('<html><body><h1>Hello World</h1></body></html>');
	res.end(); // μž‘μ„± μ’…λ£Œ 호좜 ν•΄μ•Όν•œλ‹€. μ•„λ‹ˆλ©΄ Timeout
}).listen(3000);

static Resource λ©”μ‹œμ§€

var http = require('http');
var fs = require('fs');
 
var server = http.createServer(function(req, res) {
	fs.access('./ca11.jpg', function(err) {
		if ( err ) {
			res.statusCode = 404;
			res.end();
			return;
		}
		fs.readFile('./cat.jpg', function(err, data) {			
			res.end(data);
		});
 
	});
}).listen(3000);

슀트림 νŒŒμ΄ν”„

  • μž…λ ₯ 슀트림 : fs.createReadStream()
  • 좜λ ₯ 슀트림 : res, fs.createReadStream(path).pipe(res)