[Network] HTTP 헤더 - 협상

hi·2022년 8월 30일
0

협상 (콘텐츠 네고시에이션)

클라이언트가 선호하는 표현 요청
협상 헤더는 요청시에만 사용

  • Accept : 클라이언트가 선호하는 미디어 타입 전달 (html, json..)
  • Accept-Charset : 클라이언트가 선호하는 문자 인코딩
  • Accept-Encoding : 클라이언트가 선호하는 압축 인코딩
  • Accept-Language : 클라이언트가 선호하는 자연 언어

Accept-Language

적용 전

Accept-Language

적용 후

요청한 언어로 응답


🔎 복잡한 상황에서는?

요청한 언어가 없는 경우

협상 우선순위

1)

GET /event
Accept-Language: ko-KR,ko;q=0.9,en-US'q=0.8,en;q=0.7
  • 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

결과

2)

GET /event
Accept: text/*, text/plain, text/plain;format=flowed. */*
  • 구체적인 것이 우선

    1. text/plain;format=flowed
    2. text/plain
    3. text/*
    4. */*

3)

  • 구체적인 것을 기준으로 미디어 타입을 맞춤
  • Accept: text;q=0.3, text/html;q=0.7, text/html;level=1, text/html;level=2;q=0.4, /;q=0.5

text/plain의 경우 매칭되는 것이 없이 때문에 text;q=0.3으로 매칭

0개의 댓글