HTTP 프로토콜은 웹 브라우저가 선호하는 내용을 가져오기 위해 서버와 협상할 수 있다.
서버에서 제공하는 컨텐츠가 브라우저에 지원하지 않는다면 클라이언트 입장에서 불편할 수 밖에없다. 따라서 서버에서 클라이언트가 선호하는 컨텐츠를 바탕으로 협상할 수 있는 메커니즘을 지원한다. 대표적으로 Accept 라는 이름이 붙은 HTTP Request가 해당한다.
요청시에만 사용!
1) Accept : 클라이언트가 선호하는 미디어 타입
2) Accept-Charset : 클라이언트가 선호하는 문자 인코딩
3) Accept-Encoding : 클라이언트가 선호하는 압축 인코딩
4) Accept-Language : 클라이언트가 선호하는 언어
Accept-Language를 사용하여 요청헤더 예시
GET /event
Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
q = Quality Value 라고하며 0~1 사이값을 지닌다. 값이 높을 수록 선호도가 높다는 것이다.
위 예시는 ko > en-US > en 순으로 선호도를 가진다. 서버에서 3가지 모두 언어 설정에 없다면 해당 서버의 default언어를 제공한다.
Accept 예시
GET /event
Accept: text/*,text/plain,text/plain;format=flowed, */*
미디어 타입이 위와 같을 때 우선 순위는 구체적인 것 순으로 지정된다.
1. text/plain;format=flowed
2. text/plain
3. text/*
4. */*
q = Quality Value를 사용하여 선호도를 직접 지정할 수 있다.
GET /event
Accept: text/*;q=0.9,text/plain;q=0.8,text/plain;format=flowed, */*;q=0.1
1. text/plain;format=flowed ( 지정하지 않으면 q=1)
2. text/*
3. text/plain
4. */*
'HTTP' 카테고리의 다른 글
[11] HTTP 쿠키 (0) | 2021.03.29 |
---|---|
[10] HTTP 메세지 전송방법 (단순,압축,분할,범위) (0) | 2021.03.29 |
[8] HTTP Redirection (3xx) (0) | 2021.03.29 |
[7] 클라이언트에서 서버로 HTTP 데이터 전송 4가지 (0) | 2021.03.29 |
[6] HTTP 메서드 - GET,POST,PUT (0) | 2021.03.29 |
댓글