2020-11-30 HTTP 컨텐츠 협상
컨텐츠 협상
(출처 : https://developer.mozilla.org/ko/docs/Web/HTTP/Content_negotiation)
- 클라이언트에서 HTTP 프로토콜을 이용하여 서버로 요청을 보내면 서버 내부에서 컨텐츠 협상(Content-Negotiation) 과정을 거친다.
- 컨텐츠 협상이란 동일한 요청에 대해 클라이언트에게 어떤 리소스가 가장 잘 맞는지 협상하는 과정을 지칭한다. 잘 맞는 리소스는 리소스의 언어, 이미지 포맷, 인코딩 등이 존재하고 클라이언트에서 요청 메세지의 헤더에 포함된 Accept 관련 헤더, User-Agent 등을 참조하여 서버에서 컨텐츠 협상을 할수도 있고, 에이전트 주도의 협상을 할 수도 있다. 여기서는 서버주도 컨텐츠 협상에 대해 설명한다.
- 위에 요청헤더에서 Accept, Accept-Charset, Accpet-Encoding, Aceept-Language, User-Agent의 헤더에 대해서 살펴봤다. Accept 헤더의 주요 목적은 서버에게 클라이언트가 선호하는 데이터 형식, 언어, 인코딩 방식을 가르쳐준다. 서버는 요청 헤더의 Accept관련 헤더들을 참조하여 동일 요청에 대한 여러개의 리소스들 중에 가장 최적의 리소스를 응답해준다.
- 컨텐츠 협상을 통해 요청에 적절한 엔티티를 제공해줄 수 있다.
Written on November 30, 2020