Content-Language 및 Accept-Language는 무엇입니까?


82

Content-Language및 의 HTTP 헤더를 보았습니다. Accept-Language누군가가 이것들의 용도와 차이점을 설명 할 수 있습니까? 나는 다국어 사이트를 가지고 있는데 사용자가 두 사이트를 현재 선택한 언어로 설정해야하는지 궁금합니다.


브라우저에서 일반적으로 사용하지 않기 때문에 사이트에 Content-Language를 추가하는 데 신경 쓰지 않아도됩니다. 그러나 HTML에서 lang 속성을 사용할 수 있습니다.
james.garriss

답변:


104

Content-Language, 엔티티 헤더는 청중을 대상으로하는 언어를 설명하는 데 사용되므로 사용자가 선호하는 언어에 따라 구별 할 수 있습니다. 엔티티 헤더는 HTTP 요청과 응답 모두에 사용됩니다. 1

Accept-Language요청 HTTP 헤더 인, 클라이언트가 이해할 수있는 언어와 선호하는 로케일 변형을 알립니다. 2 선택적인 가중치 또는 '품질'값이있는 여러 언어가있을 수 있습니다. 예를 들면 :

Accept-Language: da, en-GB;q=0.8, en;q=0.7

(기본 가중치는 1이므로)와 같습니다 da;q=1, en-GB;q=0.8, en;q=0.7.

적절한 번역이 있는지 확인하기 위해 값과 가중치를 구문 분석하고 사용자에게 가장 선호하는 언어 가중치로 번역을 제공해야합니다.

사이트에 특정 언어를 적용하려면 쿠키 설정 값과 같은 대안을 사용자에게 제공하는 것이 좋습니다. 이는 일부 사용자가 언어 수락 기본 설정을 변경하지 않고 특정 언어로 사이트를보기를 원할 수 있기 때문입니다.


13
답변에 약간의 수정 : Content-Language는 콘텐츠 헤더이므로 서버에서 클라이언트로 또는 클라이언트에서 서버로 콘텐츠에 적용됩니다.
james.garriss

1
RFC2616 :“Content-Language entity-header 필드는 동봉 된 엔티티에 대해 의도 된 청중의 자연어를 설명합니다. 그러나 하나의 엔터티 내에 여러 언어가 있다고해서 여러 언어 사용자를 대상으로하는 것은 아닙니다. 예를 들어 "라틴어의 첫 번째 수업"과 같은 초보자 용 언어 입문서는 영어를 잘하는 청중이 사용하기위한 것입니다. 이 경우 Content-Language에는 "en"만 올바르게 포함됩니다. " R. Fielding, UC Irvine, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee; 1999.
Ucho

그래서 그것은 페이지의 언어가 아닙니다. RFC 2616 섹션 14.12를 참조하십시오 .
Ucho

20

Content-Language콘텐츠의 특정 부분을 대상으로하는 언어를 설명합니다. Accept-Language사용자 에이전트가 콘텐츠를 원하는 언어 목록입니다.이를 생각하는 가장 좋은 방법 Content-Language은 콘텐츠 를 설명 Accept-Language하고 선호도를 전달하는 것입니다.



5

Content-Language entity-header 필드는 포함 된 엔티티에 대해 의도 된 대상의 자연어를 설명합니다. 이것은 entity-body 내에서 사용되는 모든 언어와 동일하지 않을 수 있습니다.

Accept-Language 요청 헤더 필드는 요청에 대한 응답으로 선호되는 자연어 집합을 제한합니다.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html


0

Content-Language 엔티티 헤더 는 사용자가 사용자의 선호하는 언어에 따라 차별화 할 수있게되도록, 언어 (들)를 설명하는 사용자를 대상으로하기 위해 사용된다.

Header type                     Entity header
Forbidden header name           no
CORS-safelisted response-header yes
CORS-safelisted request-header  yes

— MDN 웹 참조-HTTP 헤더-콘텐츠 언어

Accept-Language클라이언트가 이해할 수있는 언어로 요청 HTTP 헤더이 광고를하고있는 로케일 변형이 바람직하다. (언어 란 프로그래밍 언어가 아닌 영어와 같은 자연어를 의미합니다.)

Header type                     Request header
Forbidden header name           no
CORS-safelisted request-header  yes

— MDN 웹 참조-HTTP 헤더-Accept-Language

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.