모든 개발자를 위한 HTTP 웹 기본 지식

Ch07. HTTP 헤더(일반 헤더) - 콘텐츠 협상

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

Accept-Language 적용 전

 

    • Accept-Language 적용 후

Accept-Language 적용 후

  • 복잡한 Accept-Language

한국어를 주면 좋으나 없을경우 영어로라도 받고 싶지만 서버는 독일어가 기본이라 독일어를 반환한다.

협상과 우선순위1

  • 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

  • 구체적인 것이 우선한다.
  • 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

미디어 타입

728x90