HTTP 응답 메세지의 구조
- 시작 줄 (Start line), 헤더 (Header), 바디 (Body)로 HTTP 요청 메세지의 구조와 기본 틀이 동일하다.
시작 줄 (Start line, Status line)
아래의 예를 보며 구조를 뜯어보자.
HTTP/1.1 404 Not Found
- 프로토콜 버전: 주로
HTTP/1.1
버전을 사용한다. - 상태 코드: 요청의 성공 실패 여부를 가리킨다.
- 예시에서는
404
가 반환됐다. - 200: 성공, 404: 찾을 수 없음, 302: 임시적으로 이동
- 예시에서는
- 상태 텍스트: 상태 코드에 대해 사람이 이해하기 쉽도록 설명해주는 텍스트이다.
- 예시에서는
Not Found
가404
의 의미를 설명하고 있다.
- 예시에서는
헤더 (Headers)
- 요청 메세지의 헤더와 동일하게 대소문자를 구분하지 않고,
:
콜론 뒤에 값이 오는 특성을 갖는다. - 하나의 줄에 하나의 헤더가 표현된다.
- 요청과 마찬가지로 응답 메세지에도 다양한 그룹의 헤더가 표현될 수 있다. 다만, 요청 헤더 대신 응답 헤더가 온다.
- 일반 헤더 (General Headers): 메세지 전체에 적용된다. Via 와 같은 헤더가 있다.
- 응답 헤더 (Response Headers): 상태 표시줄에 들어가지 못했던 응답 서버에 대한 추가 정보를 제공한다. Vary, Accept-Ranges
- 표현 헤더 (Representation Headers): Content-Type 과 같이 메세지 데이터에 어떠한 내용이 들어있는지 기술한다. 메세지가 바디를 가질 때만 존재한다.
바디 (Body)
- HTTP Response 의 마지막 부분에 들어간다.
- 201 Created, 204 No Content 와 같은 상태코드에는 보통 바디가 존재하지 않는다.
- 바디는 보통 3가지 카테고리로 나뉜다.
- 길이를 알 수 있는 단일 리소스 바디(a single file of known length) 는 하나의 파일을 포함한다. Content-Type 과 Content-Length 에 의해 정의된다.
- 길이를 알 수 없는 단일 리소스 바디(a single file of unknown length) 는 길이를 알 수 없는 하나의 파일을 포함한다. chunks 에 의해 인코딩된다. Transfer-Encoding 헤더가
chunked
로 설정된다. - 다중 리소스 바디는 여러 파트(multipart)의 바디를 포함한다. 각각 정보의 다른 부분을 가지고 있다. 응답 메세지에서 이 바디를 갖는 것은 상대적으로 희귀하다.
일반적으로 우리가 가장 많이 받게되는 Response Body 중 하나는 HTML 문서이다.
네이버의 Response Body 예시
레퍼런스
반응형
'네트워크 > HTTP' 카테고리의 다른 글
HTTP 헤더란? (Http headers) (0) | 2023.04.16 |
---|---|
HTTP/1 에서 HTTP/2 로 가면서 얻는 개선점들 (HTTP1 에서 HTTP2로) (0) | 2023.04.16 |
HTTP 요청 메세지의 구조 (0) | 2023.04.15 |
HTTP Content-Type 헤더란? (0) | 2023.04.14 |
HTTP MIME type 이란? (0) | 2023.04.14 |