http 통신
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 클라이언트
: 클라이언트 요청
: 바디 없이 요청 보내기