Back-End/HTTP

[HTTP][일반 헤더] - 협상

얄루몬 2022. 2. 25. 10:46

💻본 포스팅은 '모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한'님의 강의를 듣고 작성되었습니다.
https://inf.run/kXeZ

 

모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의

실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런...

www.inflearn.com


[협상]

  • 클라이언트가 선호하는 표현 요청
    • Accept: 클라이언트가 선호하는 미디어 타입 전달
    • Accept - Charset: 클라이언트가 선호하는 문자 인코딩
    • Accept - Encoding: 클라이언트가 선호하는 압축 인코딩
    • Accept - Language: 클라이언트가 선호하는 자연 언어
    • 협상 헤더는 요청시에만 사용한다.

 

 

[Accept - Language 적용 전후 살펴보기]

  • Accept - Language를 설정하지 않고 보내면 다중 언어 지원 서버의 경우 우선순위에 있는 언어로 브라우저에게 다시 응답할 것이다.
  • 이를 피하기 위해서 우리는 Accept - Language:ko 라는 정보를 서버에게 전달해 한국어를 우선으로 지원 받아야 한다.
  • 그렇다면 한국어 지원이 아예 없는 서버라면?
    • 우선 순위를 보내 원하는 언어로 받을 수 있게 해주어야 한다.

 

 

[협상과 우선순위]

  • 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: text/*, text/plain, text/plain;format=flowed, */*
    1. text/plain;format=flowed
    2. text/plain 
    3. text/*
    4. */*

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