HTTP로 통신한다는 말은 결국
브라우저와 서버가 HTTP 메시지를 주고받는다는 뜻이다.
이 메시지는 크게 두 덩어리로 구성된다.
- Header(헤더)
- Body(바디)
이 구조는 request에서도 같고 response에서도 같다.
즉, 요청 메시지도 header/body가 있고, 응답 메시지도 header/body가 있다.
Header는 “설명서(메타 정보)”이다
Header는 메시지의 부가 정보가 들어가는 영역이다.
쉽게 말하면 “이 메시지를 어떻게 해석해야 하는지”에 대한 설명서이다.
예를 들어 이런 정보들이 header에 들어간다.
- 요청 방식: GET인지 POST인지
- 어떤 주소로 요청했는지
- 브라우저 정보(어떤 브라우저인지)
- 쿠키 정보
- 응답이라면 상태 코드(200, 404 등)
- 응답 데이터의 타입(HTML인지 JSON인지)
- 캐시 관련 정보
- 인코딩 관련 정보
즉 header는 “내용 자체”가 아니라
그 내용을 해석하기 위한 조건과 배경 정보를 담는다.
이걸 비유하면 이렇게 된다.
- header = 편지봉투(주소, 규칙, 안내문)
- body = 편지 내용(진짜 전달하고 싶은 내용)
Body는 “실제 데이터(내용물)”이다
Body는 실제로 전달하려는 데이터가 들어가는 영역이다.
request의 body에는 보통 이런 것들이 들어간다.
- 폼에서 전송한 값(POST form data)
- JSON 형태의 데이터(API 요청)
response의 body에는 보통 이런 것들이 들어간다.
- HTML 문서
- JSON 데이터(API 응답)
- 파일 데이터(다운로드 응답)
즉 body는 말 그대로 “내용물”이다.
request/response에서 header/body는 이렇게 쓰인다
Header와 Body를 구분하는 이유는 명확하다.
- 전달해야 할 데이터는 body에 담는다
- 그 데이터를 어떤 규칙으로 해석해야 하는지는 header에 담는다
예를 들어 POST로 로그인 폼을 전송하는 상황을 생각해보면,
- body에는 email, password 같은 값이 들어간다
- header에는 “이 요청은 POST이고, 어떤 형식으로 데이터가 들어왔다” 같은 정보가 들어간다
서버는 header를 보고 요청을 해석하는 방식부터 결정하고,
body를 읽어서 실제 데이터를 처리한다.
“Network 탭에서 request headers / response headers가 같이 보이는 이유”
브라우저 개발자 도구에서 Network를 보면
한 요청을 클릭했을 때 보통 이런 식으로 묶여 있다.
- Request Headers
- Response Headers
- (필요하면) Request Payload / Response
이렇게 보이는 이유는 단순하다.
하나의 통신 단위는 “request + response”이고
각각이 header/body 구조를 갖기 때문이다.
즉 개발자 도구에서는 request와 response를 “한 세트”로 보여준다.
정리
- HTTP 메시지는 header와 body로 구성된다
- header는 메타 정보(해석 규칙)이다
- body는 실제 데이터(내용물)이다
- request/response 모두 이 구조를 따른다
'Web > Web Basics' 카테고리의 다른 글
| [웹 기초] 9. 개발자 도구(Network)로 request/response를 눈으로 확인하는 방법 (0) | 2026.03.29 |
|---|---|
| [웹 기초] 8. HTTP가 비연결성이고 무상태성이라는 말의 의미 (0) | 2026.03.29 |
| [웹 기초] 6. 프로토콜과 HTTP/HTTPS (0) | 2026.03.29 |
| [웹 기초] 5. 웹 서버와 WAS (0) | 2026.03.29 |
| [웹 기초] 4. 정적 데이터와 동적 데이터는 무엇이 다른가 (0) | 2026.03.29 |