IT/Node.js

CHAPTER06

밍띠이 2018. 8. 2. 11:33
반응형

Part 3. Node.js를 사용한 웹개발

CHAPTER 06 http모듈

HTTP란?


HTTP(HyperText Transfer Protocol)

  • TCP/IP 기반의 프로토콜 : 페이지 전달 프로토콜 / 파일 전송 프로토콜

Node.js의 http모듈


  • 가장 기본적인 웹 모듈

HTTP웹 서버와 클라이언트를 생성하는 것과 관련된 모든 기능을 담당

Node.js로 웹서버를 개발하자!

  • http 모듈의 사용법

  • http 모듈의 응용으로 웹서버 기능을 구현

개념 설명
요청 웹페이지에 접속하려는 요청
응답 요청을 받아 이를 처리하는 작업
http모듈 HTTP웹서버와 관련된 기능
server객체 웹서버를 생성하는데 필요한 객체
response객체 응답메세지 작성시 request 이벤트 리스너의 두번째 매개변수
request객체 응답메세지 작성시 request 이벤트 리스너의 첫번째 매개변수

6.1 요청과 응답

*스트림 : 프로그램이 프로그램 외부와 통신할때의 통로

*요청메시지와 응답메시지 확인법

[F12]버튼 - 개발자 도구 - network 탭에서 현재 웹페이지를 새로고침 - http서버에서의 요청과 응답 확인가능

6.2 server 객체

http 모듈

메서드 이름 설명
createServer() server객체를 생성
listen(port[, callback]) 서버 실행
close([callback]) 서버 종료

//모듈을 추출

var http = require('http');



//웹서버를 생성

var server = http.createServer();



//웹서버를 실행_52273번 포트를 사용

server.listen(52273);



// 웹서버를 종료

server.close();

server객체의 이벤트


이벤트이름 설명
request 클라이언트가 요청시
connection 클라이언트 접속시
close 서버 종료시
checkContinue 클라이언트가 지속적인 연결을 하고있을때
upgrade 클라이언트가 HTTP업그레이드를 요청할 때
clientError 클라이언트에서 오류가 발생할 때

6.3 response 객체

클라이언트에 웹페이지를 제공하려면 응답메시지를 작성해야한다. 이때 response 객체를 사용한다.

메서드이름 설명
center center
writeHead(statusCode[, statusMessage][, headers]) 응답헤더작성
end([data[, encoding]][, callback]) 응답본문작성

6.3.1 File System 모듈을 사용한 HTML 페이지 제공


서버에 존재하는 HTML 페이지를 클라이언트에 제공


//서버생성 및 실행, fs모듈을 사용

var fs = require('fs');

var http = require('http');

6.3.2 이미지와 음악파일 제공

-Content-Type 속성으로 설정

MIME형식의 예

Content Type 설명
text/plain 기본적인 텍스트
text/html HTML문서
text/css CSS문서
text/xml XML문서
image/jpeg JPG,JPEG 그림파일
image/png PNG 그림파일
video/mpeg MPEG 비디오 파일
audio/mp3 MP3 음악파일

6.3.3 쿠키생성

쿠키란?

키와 값이 들어있는 작은 데이터조각으로 이름, 값, 파기날짜와 경로정보를 포함
일정기간동안 데이터를 저장할수있으므로 로그인상태를 유지하는 웹사이트에서사용(fb)

Set-Cookie 속성

Name = Value; Expires = 날짜; Domain = 도메인; Path = 경로; Secure

6.3.4 페이지 강제이동

웹페이지의 강제이동은 응답헤더의 Location 속성을 사용

Status Code_ writeHead()메서드의 첫번째 매개변수

HTTP Status Code 설명 예시
1XX 처리중 100 Continue
2XX 성공 200 OK
3XX 리다이렉트 300 Multiple Choice
4XX 클라이언트오류 400 Bad Request
5XX 서버 오류 500 Internal Server Error
  • 추가로 404 Page Not Found

6.4 request 객체

Server 객체의 request 이벤트리스너의 첫번째 매개변수 : request 객체

속성이름 설명
method 클라이언트의요청방식
url 클라이언트가요청한 URL
headers 요청메시지헤더
trailers 요청메시지트레일러
httpVersion HTTP프로토콜 버전

6.4.1 url속성을 사용한 페이지구분

Pathname 으로 페이지구분

6.4.2 method 속성을 사용한 페이지 구분

GET/POST 요청 속성에 따른 페이지 구분(method속성사용)

request.method == 'GET'
request.method =='POST'

6.4.3 GET 요청 매개변수 추출

JSON 형식으로 출력

6.4.4 POST 요청 매개변수 추출

요청매개변수를 출력

6.4.5 쿠키추출

쿠키는 문자열이아닌 배열로 저장해야해(express 모듈)

반응형