목적

HTTP에 대한 전체상을 이해합니다.

 

목차

1. 정의

2. 특징

3. HTTP 기반 시스템의 구성 요소

    3.1. 클라이언트

    3.2. 서버

    3.3. 프록시

4. HTTP로 제어할 수 있는 것

    4.1. 캐시

    4.2. origin 제약완화

    4.3. 인증

    4.4. 프록시, 터널링

    4.5. 세션

5. HTTP 흐름

6. HTTP 메시지

    6.1. 요청의 구성 요소

    6.2. 응답의 구성 요소

 

1. 정의

HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜

 

2. 특징

- 웹상에서의 메시지(요청, 응답)를 통한 데이터 교환의 기초이다.

- 전송 프로토콜인 TCP나 TLS(암호화된 TCP)를 통해 메시지를 전송한다.

- HTTP 프로토콜은 애플리케이션 계층에 속한다.

- 서버, 클라이언트 구조이다.

 

3. HTTP 기반 시스템의 구성요소

3.1. 클라이언트

- HTML 문서 요청 후, 추가적으로 다음 리소스들을 요청하여 혼합한다.

    - 실행할 스크립트인 HTML

    - 이미지, 비디오 등 하위 리소스

    - 레이아웃 정보를 담은 CSS

3.2. 서버

- 클라이언트의 요청에 대한 문서를 제공한다.

- 논리적으로 단일 컴퓨터지만, 부분적으로 문서를 생성하는 서버들의 집합일 수 있다.

- 여러 개의 서버를 동일 머신 위에서 호스팅 할 수 있다.

- HTTP/1.1과 Host 헤더로 동일한 IP 주소를 공유할 수 있다.

3.3. 프록시

- 애플리케이션 계층에서 클라이언트와 서버 사이에 위치하는 컴퓨터로, 다음 기능을 수행한다.

    - 캐싱

    - 필터링

    - 로드 밸런싱

    - 인증

    - 로깅

 

4. HTTP로 제어할 수 있는 것

4.1. 캐시

    - 서버 : 캐시의 대상, 기간을 프록시와 클라이언트에게 지시할 수 있다.

    - 클라이언트 : 저장된 문서를 무시하도록 중간 캐시 프록시에게 지시할 수 있다.

4.2. origin 제약완화

    - 보안을 위한 origin 제약을 HTTP 헤더로 완화할 수 있다.

4.3. 인증

    - HTTP의 WWW-Authenticat 또는 유사 헤더, 쿠키를 사용한 특정 세션 설정

    - 특정 사용자만이 접근할 수 있도록 할 수 있다.

4.4. 프록시, 터널링

    - 실제 주소를 숨길 수 있다.

4.5. 세션

 

5. HTTP 흐름

서버와 클라이언트 간 통신의 흐름

1) TCP 연결

2) HTTP 메시지 전송

3) 서버에 의해 전송된 응답을 읽어들임

4) 연결을 닫거나 다른 요청들을 위해 재사용

 

6. HTTP 메시지

6.1. 요청의 구성 요소

    1) HTTP 메소드

    2) 요청할 리소스의 경로

    3) HTTP 프로토콜 버전

    4) 요청 헤더

    5) (전송할 리소스)

6.2. 응답의 구성 요소

    1) HTTP 프로토콜 버전

    2) 상태 코드

    3) 상태 메시지

    4) 응답 헤더

    5) (전송받은 리소스)

 

출처 : developer.mozilla.org/ko/docs/Web/HTTP/Overview

 

HTTP 개요

HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 합니다. 클라이언트-서버

developer.mozilla.org

 

반응형

'■ 웹 개발 > 프로토콜' 카테고리의 다른 글

HTTP Messages  (0) 2020.10.22
HTTP의 진화  (0) 2020.10.15

+ Recent posts