ログイン 出店する
← 가이드 목록
시작하기

HTTP 헤더란? 브라우저와 서버가 주고받는 추가 정보 쉽게 이해하기

HTTP 헤더는 요청·응답에 붙는 부가 정보입니다. Host·User-Agent·Content-Type·Authorization·Cookie·Cache-Control과 HTML head 차이까지 초보 기준으로 정리합니다.

HTTP 헤더란? 브라우저와 서버가 주고받는 추가 정보 쉽게 이해하기

홈페이지에 접속할 때 브라우저는 「이 페이지만 보여주세요」라고만 말하지 않습니다. 원하는 형식, 브라우저 종류, 어느 사이트에서 왔는지, 로그인 인증, 선호 언어 같은 추가 정보도 함께 전달할 수 있습니다. 이 부가 정보가 HTTP 헤더(Header)입니다.

쉽게 말하면 — HTTP 헤더는 요청서·답변서에 붙는 추가 안내사항입니다.

브라우저가 요청 헤더를 보내고 서버가 응답 헤더를 돌려주는 HTTP 헤더 흐름
요청 헤더 ↔ 응답 헤더 · 본문은 별도

택배 송장에 비유하면

상자 안은 물건(본문)이고, 송장에는 보내는 사람·받는 사람·취급 주의가 적힙니다. HTTP도 글·이미지 같은 내용과 별도로 「이 요청을 어떻게 처리할지」 알려 주는 정보가 함께 갑니다. 그게 헤더입니다.

요청 헤더와 응답 헤더

  • 요청 헤더 — 브라우저 → 서버 (손님의 요청사항)
  • 응답 헤더 — 서버 → 브라우저 (직원의 안내사항)

메서드와 URL이 「무엇을」인지 알려 주고, 헤더는 「어떤 조건·형식·인증으로」를 보강합니다. 결과는 상태 코드로 돌아옵니다.

자주 보는 요청 헤더

Host

어느 도메인 요청인지 알려 줍니다. 한 서버에 여러 사이트가 있어도 Host: company-a.com으로 구분이 가능합니다. 같은 건물 안 회사 이름을 말하는 것과 비슷합니다.

User-Agent

Chrome·Safari·모바일·검색 크롤러 등 「어떤 프로그램이 접속했는지」 참고 정보입니다. 신분증이 아니며 값을 바꿀 수도 있습니다.

Accept · Accept-Language

Accept는 HTML·JSON처럼 받을 수 있는 형식을, Accept-Language는 선호 언어를 알려 줍니다. 다국어 사이트는 브라우저 설정을 참고하되, 사용자가 직접 언어를 고를 수 있게 하는 편이 좋습니다.

Authorization

「이 요청의 인증정보는 이것」을 전달합니다. Authorization: Bearer 토큰 형태가 흔합니다. 출입증에 비유할 수 있고, URL에 토큰을 넣기보다 헤더를 쓰는 경우가 많습니다. 그래도 자동 암호화는 아니므로 HTTPS가 필요합니다. 로그인·인증 맥락은 401 글도 참고하세요.

Origin · Referer

Origin은 요청이 시작된 출처입니다. 다른 도메인 API 호출(CORS)에서 자주 쓰입니다. Referer는 어느 페이지에서 넘어왔는지 참고할 수 있는데, 영어로는 Referrer지만 헤더 이름은 역사적 이유로 Referer입니다.

Content-Type

보내는(또는 받는) 내용이 HTML·JSON·이미지인지 알려 줍니다. 포장 표시와 비슷합니다. 잘못 표시하면 브라우저·프로그램이 데이터를 잘못 해석할 수 있습니다.

자주 보는 응답 헤더

Cache-Control

로고·CSS·이미지처럼 자주 바뀌지 않는 파일을 브라우저가 얼마나 저장해 둬도 되는지 알려 줍니다. 책상 위 볼펜처럼 「매번 창고까지 가지 않아도 된다」는 안내입니다. 속도와 서버 부담에 도움이 됩니다. 자세한 내용은 Cache-Control이란?브라우저 캐시란?을 참고하세요. 버전 비교용 번호표는 ETag입니다.

Location

리디렉션에서 「새 주소는 여기」를 알려 줍니다. 201 Created에서도 새로 만든 자원의 URL을 넣을 수 있습니다.

Set-Cookie · Cookie

  • Set-Cookie — 서버가 「이 쿠키를 저장해 주세요」
  • Cookie — 브라우저가 「저장된 쿠키가 여기 있습니다」

식당 번호표처럼 다음 요청에서 「누구인지·무엇을 기억하는지」를 이어 갈 수 있습니다. 로그인·장바구니에 자주 쓰입니다. 자세한 설명은 쿠키란?을 참고하세요.

헤더와 본문은 다릅니다

헤더 = 송장(처리 안내), 본문 = 상자 안 물건(실제 데이터). POST 문의라면 Content-Type·Authorization은 헤더, 이름·메시지 JSON은 본문입니다.

사용자가 직접 입력할까?

대부분 브라우저가 자동으로 붙입니다. 다만 API 연동 시 개발자가 Authorization·Content-Type을 문서에 맞게 직접 지정하는 경우가 많습니다.

보안 · HTTPS · 크기

세션·토큰·쿠키·API 키가 헤더에 실릴 수 있습니다. 오류 공유 시 인증정보를 그대로 올리지 마세요. 공개 HTML에 비밀 API 키를 박아 두면 안 됩니다. HTTPS/SSL로 통신을 보호하는 것이 중요합니다. 쿠키가 과도하면 매 요청이 무거워질 수 있습니다. 보안 정책(프레임 허용, HTTPS 강제 등)도 응답 헤더로 전달되기도 합니다.

HTTP 헤더 ≠ HTML <head>

이름만 비슷합니다. HTTP 헤더는 통신 부가정보이고, HTML <head>는 문서 안의 제목·메타·CSS 연결 영역입니다. 화면에는 보통 안 보이며, 개발자 도구 네트워크 탭에서 확인할 수 있습니다.

한눈에 정리

  • 요청 — Host, User-Agent, Accept, Authorization, Cookie, Origin …
  • 응답 — Content-Type, Cache-Control, Location, Set-Cookie … (그리고 200 같은 상태줄)

자주 묻는 질문

헤더만으로 검색순위가 올라가나요?

특정 헤더 하나로 순위가 자동으로 오르지는 않습니다. 검색엔진도 HTTP로 페이지를 요청하므로 정상 응답·리디렉션 Location 등이 중요합니다.

POST를 쓰면 헤더가 안전한가요?

아니요. 메서드와 헤더는 「어떻게 요청할지」이고, 전송 구간 보호는 HTTPS 역할입니다.

정리

HTTP 본문 = 실제로 보내는 내용, HTTP 헤더 = 그 내용을 어떻게 처리할지 알려 주는 안내표입니다. Host·User-Agent·Content-Type·Authorization·Cache-Control·Cookie가 대표적입니다.

그중 홈페이지에서 특히 자주 만나는 것이 쿠키(Cookie)입니다. 로그인 유지·장바구니·설정 기억에 쓰이고, 사이트에 들어가면 「쿠키를 사용합니다」 안내가 뜨기도 합니다. 자세한 설명은 쿠키란?을 참고하세요.