Accept-Language
요청 헤더 Content

개요

Accept-Language는 사용자가 선호하는 자연어(한국어·영어 등)를 우선순위와 함께 서버에 알리는 요청 헤더입니다. 다국어 사이트는 이 값으로 어떤 언어의 콘텐츠를 보낼지 결정합니다.

자세히

값은 BCP 47 언어 태그(`ko`, `ko-KR`, `en-US`, `zh-Hant` 등)를 `;q=` 가중치와 함께 나열합니다. 예: `ko-KR,ko;q=0.9,en;q=0.8`은 한국어를 최우선으로, 그다음 영어를 원한다는 뜻입니다. 서버는 자신이 제공 가능한 언어와 이 선호 목록을 매칭해 최선의 언어를 고르고, 실제 응답 언어는 Content-Language로 알릴 수 있습니다.

브라우저는 사용자의 OS·브라우저 언어 설정을 바탕으로 이 헤더를 자동 생성합니다. 서버 측 언어 협상은 사용자가 URL 경로(`/ko/`, `/en/`)나 쿠키로 언어를 명시적으로 선택한 경우 그 값을 우선하고, Accept-Language는 첫 방문의 기본값 추정에 쓰는 것이 일반적입니다.

언어에 따라 응답이 달라지면 `Vary: Accept-Language`를 보내 캐시가 언어를 뒤섞지 않게 해야 합니다. 다만 값의 조합이 매우 다양해 캐시 적중률이 낮아질 수 있어, 실무에서는 경로 기반 다국어(별도 URL)를 선호하기도 합니다.

문법

Accept-Language: <lang-tag>[;q=<weight>][, ...]

e.g. Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7

지시어 / 값

<lang-tag>BCP 47 언어 태그(예: ko, ko-KR, en-US, zh-Hant).
q=<0.0~1.0>각 언어의 선호 가중치. 생략 시 1.0.
*명시되지 않은 모든 언어를 뜻하는 와일드카드.

실무 참고

관련 헤더

Content-LanguageVaryAccept

관련 상태코드

스펙 근거