협상(콘텐츠 네고시에이션)
클라이언트가 선호하는 표현 요청
- Accept: 클라이언트가 선호하는 미디어 타입 전달
- Accept-Charset: 클라이언트가 선호하느 문자 인코딩
- Accept-Encording: 클라이언트가 선호하는 압축 인코딩
- Accept-Language: 클라이언트가 선호하는 자연 언어
협상 헤더는 요청시에만 사용
Negotiation 예시
Accept-Language 적용 전
- 요청시 선호 언어 정보 없음
- 한국어 지원하지만 기본 언어인 en 언어 파일 응답
Accept-Language 적용 후
- Accept-Language: ko
- ko 언어 파일 응답
Accept-Language 복잡한 예시
- 한국어를 선호하지만 서버에서 지원안함
- 독일어보다 영어 선호하지만 기본 언어인 독일어 파일 응답
협상과 우선순위1
Quality Values(q)
- 0 ~ 1, 클수록 높은 우선순위
- 생략시 1
- ko-KR;q=1 (q생략)
- ko;q=0.9
- en-US;q=0.8
- en;q=0.7
Quality Values 예시
협상과 우선순위2
Quarlity Values(q)
- 구체적인 것을 우선한다.
- text/plain;format=flowed
- text/plain
- text/*
- /
협상과 우선순위3
Quarlity 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
- 표에 맞는 Quality Value를 갖게 된다.