📦 Request Body랑 Header, 뭐가 다른 걸까? (백엔드 공부하면서 헷갈렸던 부분 정리)
2025. 5. 29. 21:57ㆍCS정리
Spring Boot로 API를 만들면서
Postman으로 요청 보내보면 Body도 있고 Header도 있어서 처음에 진짜 헷갈렸어요 😵
그래서 이번에는
Request Header랑 Body가 뭐가 다르고, 언제 쓰는지 정리해봤어요.
(면접에서도 자주 물어보는 내용이라 공부하면서 따로 기록해 두면 좋을 것 같아요!)
✍️ 간단 비교표 먼저!
구분 Request Header Request Body
| 하는 일 | 요청에 대한 설명 같은 정보 전달 | 진짜 데이터를 담아서 보내는 공간 |
| 위치 | 요청의 위쪽 (메타정보) | 본문(body) 부분 |
| 언제 사용? | - 어떤 형식인지 알려줄 때 |
- 인증 토큰 보낼 때 | - 회원가입할 때 이름/이메일 보낼 때
- 게시글 내용 작성 등 |
| 형식 | 키: 값 (예: Content-Type: application/json) | JSON, XML, 텍스트 등 다양함 |
| 예시 | Authorization: Bearer abc123
Content-Type: application/json | { "name": "홍길동", "email": "hong@test.com" } |
🔍 직접 예시로 보면 더 이해됨!
POST /users HTTP/1.1
Host: localhost:8080
Content-Type: application/json
Authorization: Bearer abc123
Host: localhost:8080
Content-Type: application/json
Authorization: Bearer abc123
{
"name": "홍길동",
"email": "hong@test.com"
}
👉 위에 있는 건 Header
- Content-Type: 이 body가 JSON 형식이라는 걸 서버에 알려줌
- Authorization: 로그인된 유저라는 걸 인증할 때 사용함
👉 아래 있는 JSON이 Body
- 실제로 서버한테 전달하려는 데이터 (이름, 이메일 등)
🤔 왜 굳이 Header랑 Body를 나눠서 써야 할까?
처음엔 저도 “이거 그냥 다 같이 보내면 안 돼?” 싶었는데
서버 입장에서는 Header랑 Body를 따로 구분해서 처리해야
뭘 파싱 할지, 인증할지, 어떻게 응답할지 정확히 알 수 있다고 하더라고요.
예를 들어:
- Content-Type을 보면 서버는 “아~ JSON이구나!” 하고 인식하고
- Authorization이 없으면 “인증 안 된 사용자네?” 하고 차단하고
- Body는 실제 데이 터니까 저장하거나 처리하는 데 사용됨
💡 정리하면!
- Header는 설명서,
- Body는 진짜 데이터
이라고 생각하면 이해가 쉬워요!
💬 면접에서도 자주 물어봄!
"POST 요청에서 Body랑 Header의 역할이 어떻게 달라요?"
"왜 Body 말고 Header에 Content-Type이 있어야 하죠?"
"JWT 토큰을 Body에 넣으면 안 되나요?"
이런 식으로 질문 나올 수 있어서 개념 확실히 해두면 좋을 것 같아요 🙌
✨ 정리 끝! (나중에 나 자신한테 하는 말)
이건 진짜 처음에 개념 잡아두면 앞으로 API 만들 때 계속 도움 되는 지식이라
헷갈릴 때마다 다시 참고해야지!
또 공부하면서 정리할 내용 있으면 계속 포스팅해 볼 예정입니다 😄
다음엔 Swagger 문서화 쪽으로도 정리해보고 싶어요.
'CS정리' 카테고리의 다른 글
| [LG U+ 유레카 3기]HTTP와 HTTPS의 모든 것 (0) | 2025.10.29 |
|---|---|
| HTTP의 Stateless 한계를 극복한 세 가지 기술 | Cookie · Session · Token 완전 정리 (0) | 2025.10.29 |