✒️ 0. 들어가기 전
HTTP 요청/응답 과정에서 Header와 Body를 주고 받는다.
이 중에서 헤더에 대해 알아보자.
✒️ 1. HTTP 헤더
HTTP 헤더는 사용자가 HTTP 요청을 할 때 주고받는 중요한 정보다.
헤더와 바디로 구성되어 있으며, 이를 통해 클라이언트와 서버 간 통신이 이루어진다.
💡 HTTP 헤더와 바디
예를 들어, https://www.naver.com/를 요청할 때 받는 응답을 살펴보면:
Response 탭의 내용이 body다.
Headers 탭의 내용이 header다.
바디는 서버가 전송하고자 하는 실제 컨텐츠(JSON, HTML, 이미지 등)를 담고 있다.
<참고 링크>
https://jinhos-devlog.tistory.com/entry/데이터-교환의-형식-JSON과-직렬화역직렬화
https://jinhos-devlog.tistory.com/entry/데이터-교환의-형식-XML
반면 헤더는 이 바디를 설명하는 메타데이터와 기타 중요한 정보를 포함한다.
💡 HTTP 헤더
헤더는 key-value 형태로 구성되며, 콜론(':')으로 구분된다.
예를 들면:
CopyContent-Type: application/json
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
✒️ 2. HTTP 헤더의 종류
HTTP 요청 시 자동으로 생성되는 3가지 주요 헤더 타입이 있다:
💡 a) 일반 헤더
- 요청한 URL
- 요청 메서드(GET, POST 등)
- Referrer Policy (보안 관련 설정)
💡 b) 요청 헤더
클라이언트가 서버에 요청할 때 설정하는 헤더
내용: HTTP 메서드, 클라이언트의 OS 및 브라우저 정보 등
💡c) 응답 헤더
서버가 클라이언트에 응답할 때 설정하는 헤더
내용: 서버 소프트웨어 정보 등 (보안상 일부 정보는 숨겨질 수 있음)
💡응답 헤더 만들기
실제로 서버 개발을 하다보면, 정보는 body에 담아서 보내고,
필요한 경우 헤더를 만들어서 보내야하는 경우가 있다.
HTTP 헤더는 매우 유연하게 설계되어 있어 사용자 정의 헤더를 만들 수 있지만, 대부분의 경우 표준화된 헤더를 사용한다.
예를 들어:
요청 헤더에서 쿠키 설정: Cookie: name=value
응답 헤더에서 쿠키 설정: Set-Cookie: name=value
이러한 표준 헤더를 사용하면 클라이언트와 서버 간의 일관된 통신이 가능하다.
📝 면접 예상 질문
HTTP 헤더와 바디의 차이점은 무엇인가?
HTTP 요청/응답 헤더의 주요 역할은 무엇인가?
커스텀 HTTP 헤더를 만들 때 고려해야 할 점은 무엇인가?
'Content-Type' 헤더의 역할에 대해 설명하라.
HTTP 헤더에서 보안과 관련된 중요한 필드들은 무엇인가?