1. HTTP 통신

HTTP

: 웹(WWW)의 주역

: Hyper Text Transfer Protocol

: 하이퍼텍스트 - 하이퍼 링크로 논리적으로 연결되어 있는 문서

HTTP 통신의 특징

: HTTP

: 요청, 응답

: 웹브라우저 - 주소입력 - 요청 - 웹서버 - 응답 - 웹브라우저

URL

: Uniform Resource Location

: 알파벳, 숫자, 하이픈, 언더스코어, 점, 틸드

2. HTTP 요청

HTTP 메시지 구조

: 요청메시지

: 요청 라인, 요청 헤더, 요청 바디

HTTP 메소드

: 리소스를 다루는 행위

: GET, POST, PUT, DELETE

요청헤더

: 헤더는 키:값 방식으로 작성

- Accept : 클라이언트가 받을 수 있는 컨텐츠

- Cookie : 쿠키

- Content-Type : 메시지 바디의 종류

- Content-Length : 메시지 바디의 길이

- If-Modified-Since : 특정날짜이후에 변경됬을때만

요청 정보 전달

: URL을 이용해서 요청 정보 전달

: GET메소드, TRACE 메소드

: 경로와 쿼리 스트링 사용

: 메시지 바디를 사용하지 않는다.

: URLEncoded 방식

: 메시지 헤더

- Content-Type : application/x-www-form-urlencoded

: 메시지 바디 : 쿼리 문자열

: 이름:값 으로 보냄

: JSON/XML

: application/json

: json 형태로 보냄

: 멀티 파트를 이용한 요청 정보 전달

: 바이너리 파일을 올리는 경우에 주로 사용

: 하나의 메시지 바디에 파트를 나눠서 작성

: 메시지 바디를 사용 여부

: URL로 요청 정보전달 : 바디 분석 불필요

: 바디의 인코딩 방식

3. HTTP 응답

HTTP 메시지 구조

:응답라인, 응답헤더, 응답바디

응답 메시지

: 버전, 상태코드, 상태메시지

상태코드

: 서버의 응답 코드

: 1xx - 정보, 2xx - 성공, 3xx - 리다이렉션, 4xx,5xx - 오류

응답 메시지 헤더

: 주요 헤더 필드

: Content-Type : 바디데이터의 타입

: Content-Length : 바디데이터 크기

: Set-Cookie : 쿠키 설정

: ETag : 엔티티 태그

응답메시지 바디

: 바디데이터 

: HTML, XML/JSON, Octet Stream 등

: 바디 기록방식 : Content-Type 헤더 필드

응답메시지 

: 컨텐츠 타입

: 메시지 헤더에 기록

: 필드이름 content-type

: 대분류/소분류

: text/plain, text/html, application/xml ...

: 컨텐츠 타입이 맞지 않으면 제대로 출력되지 않는다.

4. HTTP 모듈

HTTP모듈

: require('http')

HTTP 모듈 클래스

: 서버용 클래스

: HTTP 클라이언트

5. HTTP 서버

HTTP 서버

: 주요 이벤트

: request - 클라이언트 메시지 도착

: connection, close

: 서버 동작 시키기

: 서버 객체 생성

: listening

: 포트

: 0~1023 - 미리 정의된 포트 : 관리자 권한 필요

: 1024 ~ 49151 : 등록된 포트

: 49152 ~ 65535 : 동적 포트

: 포트바인딩 실패

: 이미 사용중, 권한 없음

6. HTTP 클라이언트

HTTP 클라이언트

: 클라이언트 요청

: 바디 없이 요청 보내기












'프로그래밍 > Nodejs' 카테고리의 다른 글

HTTP POST요청  (0) 2017.04.16
HTTP 서버  (0) 2017.04.16
흐름제어 - 콜백, Async모듈, Promise  (0) 2017.04.15
NPM을 이용한 모듈관리  (0) 2017.04.15
Node.js 모듈  (0) 2017.04.14

+ Recent posts