코드스테이츠_국비교육/[Section2]

30.01_[HTTP] HTTP message_22.10.04

생각없이 해도 생각보다 좋다. 2022. 10. 4. 21:36

HTTP message

>의미

: 클라이언트와 서버 사이에서 데이터가 교환되는 방식

: 요청(Requests)과 응답(Responses)으로 종류가 나뉜다.

: HTTP message는 구성 파일, API, 기타 인터페이스에서 자동으로 완성함.

>message 구조

: head, body로 나뉜다.

: head는 start line(status line)과 HTTP headers를 뜻한다.

: body는 payload(사용에 있어서 전송되는 데이터)를 뜻한다.

  • start line(status line)

: 첫 번째 줄에 위치

: 요청의 상태를 나타냄

  • HTTP heaeders

: 헤더들의 집합

: 요청을 지정하거나, 메세지에 포함된 본문을 설명

  • empty line

: HTTP heaeders와 body를 구분하는 빈 줄

  • body

: 요청에 관련된 데이터를 포함함.

>요청(Requests)

  • Start line

: 세 가지 요소로 구성된다

: (1번 요소) / (2번 요소) / (3번 요소)

- 요소1

: HTTP method, 즉 수행할 작업이나 방식을 설명하는 부분

: 수행할 작업(GET, PUT, POST 등)

: 수행할 방식(HEAD, OPTIONS)

- 요소2

: 요청 대상(URL, URI)이나 프로토콜, 포트, 도메인의 절대 경로가 작성되는 부분

: 사용된 HTTP method마다 작성되는 요청 형식이 다르다.

(origin 형식, absolute 형식, authority 형식, asterisk 형식)
- 요소3

: HTTP 버전

: HTTP 버전에 따라 HTTP message 구조가 달라지기 때문

  • Heaeders

: 요청의 Headers의 구조는 아래와 같다

헤더 이름: 값

: 헤더는 3개의 그룹으로 나눌 수 있다.

General Headers

: HTTP message 전체에 적용되는 헤더

: body의 데이터와는 관련이 없는 헤더

Request Headers

: fetch를 통해 가져올 리소스, 혹은 클라이언트 자체에 대한 자세한 정보를 포함하는 헤더

Representation Headers

: body에 담긴 리소스 정보를 포함하는 헤더

: Entity headers라고도 함

  • Body

: 모든 Request에 body가 필요한 것은 아님.

: 두 종류로 구분 가능

Single-resource bodies(단일-리소스 본문)

: 헤더 두 개(Content-Type과 Content-Length)로 정의된 단일 파일로 구성

Multiple-resource bodies(다중-리소스 본문)

>응답(Responses)

  • Status line

: Responses의 첫 줄

: 아래 세 가지의 정보를 포함함

1. 현재 프로토콜의 버전

2. 상태 코드: 요청의 결과

3. 상태 텍스트: 상태 코드에 대한 설명

  • Heaeders

: 응답의 Headers의 구조는 아래와 같다

헤더 이름: 값 (요청과 같음)

: 3개의 그룹으로 구분하는 것도 요청의 헤더와 같다.

General Headers

: HTTP message 전체에 적용되는 헤더

: body의 데이터와는 관련이 없는 헤더

Response headers

: 위치 또는 서버 자체에 대한 정보(이름, 버전 등)와 같이 응답에 대한 부가적인 정보를 갖는 헤더

Representation Headers

: body에 담긴 리소스 정보를 포함하는 헤더

: Entity headers라고도 함

  • Body

: 모든 Response에도 body가 필요한 것은 아님.

: 두 종류로 구분 가능

Single-resource bodies(단일-리소스 본문)

: 헤더 두 개(Content-Type과 Content-Length)로 정의된 단일 파일로 구성

Multiple-resource bodies(다중-리소스 본문)