컨텐츠 협상(Content negotiation)
컨텐츠 협상
이란 클라이언트가 URI로 특정 리소스를 요청할 때 서버가 클라이언트에게 가장 적절한 프로젠테이션을 제공할 수 있도록 정보를 명시하는 것을 말한다. (예를들어, 언어나 이미지 포맷 혹은 컨텐츠 인코딩)
서버 주도 컨텐츠 협상
서버 주도 컨텐츠 협상
은 브라우저가 서버에 HTTP 헤더를 전송하고 이를 통해 컨텐츠를 선택하는 것을 말한다.
- Accept: 클라이언트가 선호하는 미디어 타입 전달
- Accept-Charset: 클라이언트가 선호하는 문자 인코딩
- Accept-Encoding: 클라이언트가 선호하는 압축 인코딩
- Accept-Language: 클라이언트가 선호하는 자연 언어
협상과 우선순위
HTTP 헤더가 제시하는 속성이 여러 개일 경우 인자 가중치(q: Quality value)
를 함께 전달 할 수 있다. 그리고 이 인자 가중치를 활용하여 우선순위를 판별한다.
- 0 ~ 1의 값을 가지고 클수록 우선순위가 높음
- 값이 생략되면 1을 가짐
- 예)
- Accept-Language: ko-KR,ko;q=0.9,en-US;q-0.8,en;q=0.7
- ko-KR; (값이 생략되어 q=1로 우선순위가 가장 높음)
- ko;q=0.9
- en-US;q=0.8
- en;q=0.7
- Accept-Language: ko-KR,ko;q=0.9,en-US;q-0.8,en;q=0.7
Comments powered by Disqus.