콘텐츠 협상
Last updated
Last updated
서버가 지원하지 않는다면 어쩔 수 없지만 클라이언트 측에서 콘텐츠 협상 요청이 가능하다!
협상(콘텐츠 네고시에이션) 클라이언트가 선호하는 표현 요청
협상 헤더는 요청시에만 사용
Accept: 클라이언트가 선호하는 미디어 타입 전달
Accept-Charset: 클라이언트가 선호하는 문자 인코딩
Accept-Encoding: 클라이언트가 선호하는 압축 인코딩
Accept-Language: 클라이언트가 선호하는 자연 언어
Accept-Language 복잡한 예시
한국어를 선호하지만 다중 언어 지원서버는 독일어, 영어를 지원한다. 클라이언트는 한국어 지원이 안 된다면 독일어보다는 영어를 선호하지만 서버 측에서는 한국어를 지원하지 않기 때문에 독일어를 내보낸다. 하지만 아래의 Quality Values를 적용하면 서버는 영어를 보낸다!
협상과 우선순위1. Quality Values(q)
Quality Values(q)라는 값 사용
0~1, 클수록 높은 우선순위
생략하면 1
Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
ko-KR;q=1 (q생략)
ko;q=0.9
en-US;q=0.8
en:q=0.7
협상과 우선순위2. Quality Values(q)
구체적인 것을 우선한다.
Accept: text/, text/plain, text/plain;format=flowed, /*
1. text/plain;format=flowed 2. text/plain 3. text/* 4. */*
협상과 우선순위3. Quality Values(q)
구체적인 것을 기준으로 미디어 타입을 맞춘다.
Accept: text/*;q=0.3, text/html;q=0.7, text/html;level=1,
text/html;level=2;q=0.4, */*;q=0.5