HTTP TIL 10

Nabang Kim·2021년 9월 14일
0

HTTP

목록 보기
10/13
post-thumbnail

2021년 9월 13일에 작성된 문서 5번 입니다.
http 배운 내용을 정리했습니다.



콘텐츠 협상 헤더

콘텐츠 협상 (contents negotiation)

클라이언트가 선호하는 표현 요청

  • 콘텐츠 협상에서 사용하는 헤더
    • 협상 헤더는 요청시에만 사용
헤더설명
Accept클라이언트가 선호하는 미디어 타입을 전달
Accept-Charset클라이언트가 선호하는 문자 인코딩
Accept-Encoding클라이언트가 선호하는 압축 인코딩
Accept-Language클라이언트가 선호하는 자연 언어



Accept-Language 예시

Accept-Language 헤더를 통해 클라이언트가 원하는 언어를 어떻게 서버에 요청할 수 있는지 알아봅시다.

  • 한국어 브라우저에서 특정 웹사이트에 접속했을 때 콘텐츠 협상(Accept-Language)이 적용되지 않은 경우 :
    • 서버는 요청으로 받은 우선순위가 없으므로 기본언어로 설정된 영어로 응답.
  • 클라이언트에서 Accept-LanguageKO를 작성해 요청 :
    • 서버에서는 해당 우선순위 언어를 지원할 수 있기 때문에 한국어로 된 응답을 돌려줌



Accept-Language 복잡한 예시

  • 클라이언트는 한국어를 선호해 Accept-Language에 한국어를 요청했지만 서버는 한국어를 지원하지 않으며 기본 언어는 독일어로 설정되어있다.
  • 클라이언트는 독일어는 너무 어렵기 때문에 한국어가 안되면 영어로라도 응답을 받기 원한다.

앞의 경우처럼 지원하는 언어를 요청하는 단순한 경우가 아닌 이처럼 서버에서 지원하는 언어가 여러개일때 클라이언트가 최우선으로 선호하는 언어가 지원되지 않는다면 어떻게 해야할까요?


  • 협상 헤더에서는 원하는 콘텐츠에 대한 우선순위를 지정할 수 있다.
    • Quality-Values (q) 값을 사용
    • 0 ~ 1까지 숫자가 클수록 더 우선순위
    • 생략하는 경우 1로 간주
  • 1부터 0까지 우선순위를 부여하면 이를 토대로 서버는 응답을 지원.

이를 이용해 서버에 우선순위 요청을 하게 되면 1순위인 한국어를 서버에서는 지원하지 않지만 2순위인 영어를 지원하기에 서버에서는 우선순위에 있는 영어를 독일어보다 클라이언트가 선호하기에 영어로 응답을 주게됩니다.






Written with StackEdit.

0개의 댓글

관련 채용 정보