1. HTTP란?
-HyperText Transfer Protocal, WWW상에서 서버와 클라이언트 간에 데이터를 어떻게 주고 받을 수 있는지를 정의한 통신 규약
-Hypertext란 개별 정보들을 링크를 이용해 유기적으로 연결시킴으로써 비연속적, 비선형적 체계로 구성한 전자적 텍스트
-http://ko.wikipedia.org/wiki/HTTP
2. HTTP 모듈
- Node.js는 HTTP모듈을 기본 내장 모듈로 제공, HTTP 기반 웹 어플리케이션을 쉽게 개발할 수 있게 해줌.
3. HTTP Server
- 기본소스
1 2 3 4 5 6 7 | var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/'); | cs |
- HTTP모듈이 Node.js 코더로부터 요청(require)되어졌고, http라는 변수에 할당되어 소스에서 활용 가능한 상태가 된다.
- http.createServer를 호출하여 신규 웹 서버용 객체 생성
- http.createServer의 인자값에 익명 함수를 선언하여 매번 HTTP request가 들어올 때 어떻게 동작할지 명시.
- http.createServer()를 통해 반환된 객체는 listen함수를 호출. 첫번째 인자는 서버의 리스팅 포트, 두번째 인자는 IP
4. HTTP Client
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | var http = require('http'); var options = { hostname: '127.0.0.1', port : 1337, path: '/', method: 'POST' }; var req = http.request(options, function(res){ console.log('STATUS: ' + res.statusCode); console.log('HEADERS: ' + JSON.stringify(res.headers)); res.setEncoding('utf8'); res.on('data', function (chunk){ console.log('BODY: ' + chunk); }); }); req.on('error', function(e){ console.log('problem with request: '+ e.message); }); req.write('data\n'); req.write('data\n'); req.end(); | cs |
- 서버 생성시 불러온 HTTP모듈 불러와 'http'변수에 바인딩
- options를 통해 옵션값 세팅
- host : 도메인명 혹은 서버의 IP주소, 기본 값은 'localhost'
- hostname : 호스트명을 url.parse()를 통해 파싱할 때 사용
- port : 서버의 포트, 기본 80
- localAddress : 네트워크 커넥션을 형성하는 로컬 인터페이스 주소
- socketPath : 유닉스 도메인 소켓
- method : HTTP 요청 함수명. 기본 'GET'
- headers : 요청 헤더값을 포함하고 있는 객체
- auth : 기본 인증 방식.
- agent : HTTP Client 요청 시 사용하는 소켓 풀
- request함수 호출, 인자로 options값과 어떻게 동작할지 명시한 콜백 함수
728x90
'Software Development > Web' 카테고리의 다른 글
페이스북/카카오톡 등에 링크공유시 보이는 이미지 설정방법 (0) | 2020.04.05 |
---|---|
웹 구현 필요사항 메모(JAVA script + google Sheet api) (0) | 2020.04.03 |
[Node.js]4.자바스크립트 기본 (0) | 2015.05.23 |
[Node.js]3.IDE설치 (0) | 2015.05.21 |
[Node.js]2.설치 (0) | 2015.05.21 |