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(다중-리소스 본문)
'코드스테이츠_국비교육 > [Section2]' 카테고리의 다른 글
31.01_[DB] 데이터베이스 개요_22.10.05 (0) | 2022.10.05 |
---|---|
30.02_[HTTP] REST API_22.10.04 (0) | 2022.10.04 |
29.02_[네트워크] 웹 애플리케이션 작동 원리_웹의 흐름_22.09.30 (0) | 2022.09.30 |
29.01_[네트워크] 웹 애플리케이션 작동 원리_기본 배경_22.09.30 (0) | 2022.09.30 |
28.02_Algorithm with Math_코드 정리_22.09.29 (0) | 2022.09.29 |