협상 (Content Nagotiation)
클라이언트가 선호하는 표현 요청
- Accept : 클라이언트가 선호하는 미디어 타입 전달
- Accept-Charset : 클라이언트가 선호하는 문자 인코딩
- Accept-Encoding : 클라이언트가 선호하는 압축 인코딩
- Accept-Language : 클라이언트가 선호하는 자연 언어
Accept-Language 적용 전
- 한국어 브라우저로 다중 언어 지원 서버에 접속했을 경우
- 다중 언어 지언 서버는 default 값이 영어인 상태다.
- 한국에서 접속한지 모르기 때문에 영어로 응답하게 된다.
Accept-Language 적용 후
- 클라이언트가 서버로 요청할 때 Accpet-Language:ko 로 설정하면
- 서버에서 한국어를 지원하면 한국어로 응답해준다.
Accept-Language 한국어를 원하는데 한국어 지원안할 때
또한 default가 독일어일 때 영어로 받고 싶다면?
- 이런 상황을 방지하기 위해 우선순위가 필요하다.
협상과 우선순위 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생략)
- 2.ko;q=0.9
- 3.en-US;q=0.8
- 4.en;q=0.7
협상과 우선수위 2
- 구체적인 것이 우선하다.
- Accept : text/, text/plain, text/plain;format=flowed, /*
- text/plain;format=flowed
- text/plain
- text/*
- /