HTTP 헤더 사전

요청·응답 헤더를 카테고리별로. 문법·지시어·보안 참고와 관련 헤더/코드를 함께 봅니다.

Auth2
CORS5
Access-Control-Allow-CredentialsAccess-Control-Allow-Credentials는 교차 오리진 요청이 쿠키·HTTP 인증·클라이언트 인증서 같은 자격 증명을 포함할 때, 브라우저가 그 응답을 스크립트에 넘겨줘도 되는지를 지정하는 CORS 헤더입니다.Access-Control-Allow-HeadersAccess-Control-Allow-Headers는 CORS 프리플라이트 응답에서, 교차 오리진 실제 요청이 보낼 수 있는 커스텀·비단순 요청 헤더 목록을 알리는 헤더입니다. 여기 허용되지 않은 헤더를 실제 요청에 넣으면 브라우저가 차단합니다.Access-Control-Allow-MethodsAccess-Control-Allow-Methods는 CORS 프리플라이트(OPTIONS) 응답에서, 교차 오리진 요청이 실제로 사용할 수 있는 HTTP 메서드 목록을 브라우저에 알리는 헤더입니다. 여기 없는 메서드로 실제 요청을 보내면 브라우저가 차단합니다.Access-Control-Allow-OriginAccess-Control-Allow-Origin(ACAO)은 브라우저의 동일 출처 정책(SOP)을 넘어 어떤 오리진이 이 응답을 읽을 수 있는지를 지정하는 CORS 핵심 헤더입니다. 이 헤더가 없거나 요청 오리진과 맞지 않으면 브라우저는 응답 본문 접근을 차단합니다.OriginOrigin은 요청을 시작한 출처(오리진: 스킴+호스트+포트)를 서버에 알리는 요청 헤더입니다. Referer와 달리 경로·쿼리를 포함하지 않아 프라이버시에 유리하며, CORS와 CSRF 검증의 핵심입니다.
Caching4
Conditional6
ETagETag(Entity Tag)는 특정 리소스 표현의 버전을 식별하는 불투명(opaque) 문자열입니다. 리소스 내용이 바뀌면 ETag도 바뀌므로, 클라이언트와 서버는 이 값을 비교해 캐시가 여전히 유효한지 판단하거나 낙관적 동시성 제어를 수행합니다.If-MatchIf-Match는 클라이언트가 가진 ETag가 서버의 현재 ETag와 '일치할 때만' 요청을 처리하도록 하는 조건부 요청 헤더입니다. 주로 PUT·DELETE 같은 쓰기에서 동시 수정 충돌을 막는 낙관적 잠금(optimistic locking)에 쓰입니다.If-Modified-SinceIf-Modified-Since는 클라이언트가 가진 캐시본의 마지막 수정 시각을 서버에 보내, '그 시각 이후에 바뀐 경우에만 본문을 달라'고 요청하는 조건부 요청 헤더입니다. 날짜 기반 캐시 재검증에 쓰입니다.If-None-MatchIf-None-Match는 클라이언트가 가진 캐시 표현의 ETag를 서버에 보내, '이 ETag와 다를 때만 본문을 달라'고 요청하는 조건부 요청 헤더입니다. 캐시 재검증의 가장 정확한 수단입니다.If-Unmodified-SinceIf-Unmodified-Since는 리소스가 지정한 시각 이후로 '변경되지 않았을 때만' 요청을 처리하도록 하는 조건부 요청 헤더입니다. 시각 기반의 동시 수정 충돌 방지에 쓰이며, If-Modified-Since의 반대 개념입니다.Last-ModifiedLast-Modified는 서버가 리소스가 마지막으로 변경되었다고 판단하는 시각을 알려주는 응답 헤더입니다. 클라이언트는 이 시각을 저장했다가 조건부 요청에 사용해, 그 이후 바뀌지 않았으면 캐시를 재사용합니다.
Connection2
Content7
AcceptAccept는 클라이언트가 응답 본문으로 받고 싶은 미디어 타입(MIME 타입)을 서버에 알려, 콘텐츠 협상(content negotiation)을 시작하는 요청 헤더입니다. 서버는 이 선호도에 맞춰 가장 적절한 표현을 골라 응답합니다.Accept-EncodingAccept-Encoding은 클라이언트가 해독할 수 있는 콘텐츠 압축 방식을 서버에 알리는 요청 헤더입니다. 서버는 이 중 하나를 골라 본문을 압축한 뒤 Content-Encoding 헤더로 실제 사용한 방식을 알립니다.Accept-LanguageAccept-Language는 사용자가 선호하는 자연어(한국어·영어 등)를 우선순위와 함께 서버에 알리는 요청 헤더입니다. 다국어 사이트는 이 값으로 어떤 언어의 콘텐츠를 보낼지 결정합니다.Content-DispositionContent-Disposition은 응답 본문을 브라우저가 페이지 안에 표시(inline)할지, 다운로드(attachment)로 처리할지를 지정하는 헤더입니다. 다운로드일 때는 저장 대화상자에 제안할 파일명도 함께 줄 수 있습니다.Content-EncodingContent-Encoding은 본문에 실제로 적용된 압축·변환 방식을 나타내는 헤더입니다. 수신 측은 이 값을 보고 본문을 원래대로 복원(해제)한 뒤 Content-Type에 따라 해석합니다.Content-LengthContent-Length는 메시지 본문의 크기를 바이트 단위 십진수로 나타내는 헤더입니다. 수신 측은 이 값으로 본문을 어디까지 읽어야 하는지, 즉 메시지의 경계를 정확히 알 수 있습니다.Content-TypeContent-Type은 메시지 본문의 미디어 타입(MIME 타입)을 나타내는 헤더입니다. 요청에서는 보내는 본문의 형식을, 응답에서는 받는 본문의 형식을 알려, 상대가 데이터를 올바르게 해석하도록 합니다.
Cookies2
General2
Ranges3
Routing3
Security6
Content-Security-PolicyContent-Security-Policy(CSP)는 브라우저가 페이지에서 어떤 출처의 스크립트·스타일·이미지·프레임 등을 로드하거나 실행할 수 있는지를 지시어(directive)로 세밀하게 통제하는 보안 헤더입니다. 신뢰하지 않은 리소스를 차단해 XSS·데이터 유출·클릭재킹을 크게 완화합니다.RefererReferer는 현재 요청이 시작된 이전 페이지의 URL, 즉 사용자가 어떤 페이지의 링크·리소스를 통해 이 요청에 도달했는지를 알려주는 요청 헤더입니다. 트래픽 출처 분석·유입 통계·기본적인 접근 제어에 쓰입니다.Referrer-PolicyReferrer-Policy는 브라우저가 다른 페이지로 이동하거나 리소스를 요청할 때 Referer 헤더에 얼마나 많은 출처 정보를 담을지를 제어하는 보안·프라이버시 헤더입니다. 전체 URL·오리진만·아무것도 안 보냄 사이에서 정책을 고를 수 있습니다.Strict-Transport-SecurityStrict-Transport-Security(HSTS)는 브라우저에게 앞으로 이 사이트에는 반드시 HTTPS로만 접속하라고 지시하는 보안 헤더입니다. 한 번 받으면 max-age 동안 http:// 접근 시도를 브라우저가 자동으로 https://로 승격하고, 인증서 오류를 무시할 수 없게 만듭니다.X-Content-Type-OptionsX-Content-Type-Options: nosniff는 브라우저가 응답의 실제 내용을 들여다보고 Content-Type을 임의로 추측(MIME 스니핑)하는 동작을 끄는 보안 헤더입니다. 서버가 선언한 Content-Type을 그대로 신뢰하게 만듭니다.X-Frame-OptionsX-Frame-Options는 이 페이지가 다른 페이지의 <iframe>·<frame>·<object> 안에 삽입될 수 있는지를 통제하는 보안 헤더입니다. 주 목적은 클릭재킹(clickjacking) 방어로, 공격자가 우리 페이지를 투명 프레임으로 덮어 사용자의 클릭을 가로채는 것을 막습니다.