HTTP/HTTP 헤더
[HTTP] HTTP 헤더 - 협상 (콘텐츠 네고시에이션)
Boradoris
2023. 1. 21. 18:25
협상 (콘텐츠 네고시에이션)
클라이언트가 선호하는 표현 요청
- Accept : 클라이언트가 선호하는 미디어 타입 전달
- Accept-Charset : 클라이언트가 선호하는 문자 인코딩
- Accept-Encoding : 클라이언트가 선호하는 압축 인코딩
- Accept-Language : 클라이언트가 선호하는 자연 언어
- 협상 헤더는 요청 시에만 사용
Accept-Language 적용 전
1. 클라이언트가 /event 페이지 접속 요청
2. /event 페이지의 default 언어인 영어(en)로 응답
Accept-Language 적용 후
1. 클라이언트가 /event 페이지에 선호하는 언어는 한국어(ko)로 요청
2. /event 페이지에서 한국어를 지원하기 때문에 한국어 페이지로 응답
Accept-Language 복잡한 예시
1. 클라이언트가 /event 페이지에 선호하는 언어는 한국어(ko)로 요청
2. /event 페이지에서 한국어를 지원하지 않기 때문에 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
- 1. ko-KR;q=1 (q 생략)
- 2. ko;q=0.9
- 3. en-US;q=0.8
- 4. en;q=0.7
Accept-Language 복잡한 예시
1. 클라이언트가 /event 페이지에 그림과 같은 우선순위로 언어로 페이지 요청
2. 1, 2, 3순위의 한국어와 en-US를 지원하지 않으므로, 4순위의 영어(en)로 응답
협상과 우선순위 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
출처 : https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC