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