📦 Request Body랑 Header, 뭐가 다른 걸까? (백엔드 공부하면서 헷갈렸던 부분 정리)

2025. 5. 29. 21:57CS정리

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

{
  "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 문서화 쪽으로도 정리해보고 싶어요.