Accept-Language
사용법
Accept-Language 헤더는 콘텐츠 협상의 일부입니다. 클라이언트가 순위가 매겨진 언어 태그 목록을 보내면, 서버는 요청된 리소스에 대해 사용 가능한 최적의 번역본을 선택합니다.
브라우저는 운영체제의 언어 설정을 바탕으로 이 헤더를 채웁니다. 값은 BCP 47 언어 태그 구문을 따르며, 기본 언어 코드(en, de, fr)와 지역 서브태그(en-US, pt-BR, zh-CN)를 지원합니다. 여러 언어가 나열되면 품질 값이 선호 순위를 정합니다.
서버는 Content-Language 응답 헤더를 통해 반환한 콘텐츠의 언어를 알립니다. 일치하는 번역본이 없을 때 대부분의 서버는 406 Not Acceptable로 응답하기보다 기본 언어를 반환합니다. 대체 언어로라도 콘텐츠를 제공하는 편이 오류를 반환하는 것보다 대체로 유용하기 때문입니다.
language-tag
BCP 47 언어 태그입니다. en 같은 기본 서브태그는 모든 지역 변형에 일치합니다. en-GB처럼 지역 서브태그가 있는 태그는 특정 로캘을 겨냥합니다.
*
아직 나열되지 않은 모든 언어에 일치하는 와일드카드입니다.
;q= (품질 값)
상대적 선호도를 나타내는 0과 1 사이의 가중치입니다. 기본값은 1.0입니다. 값이 0이면 해당 언어를 받아들일 수 없다는 표시입니다.
예시
영국 영어를 선호하고, 일반 영어를 대체 수단으로, 독일어를 낮은 우선순위로 두는 클라이언트입니다. 서버는 일반 영어 콘텐츠로 응답합니다.
요청
GET / HTTP/1.1
Host: example.com
Accept-Language: en-GB, en;q=0.9, de;q=0.5
응답
HTTP/1.1 200 OK
Content-Language: en
프랑스어로 설정된 브라우저가 보내는 요청으로, 모든 언어를 대체 수단으로 허용합니다.
Accept-Language: fr-FR, fr;q=0.9, *;q=0.5
스페인어를 1순위, 포르투갈어를 2순위, 영어를 3순위로 두는 다국어 선호 목록입니다.
Accept-Language: es, pt;q=0.8, en;q=0.6