geeone 스터디 블로그

[컴퓨터 네트워크] 네트워크의 응용 계층 - 콘텐츠 협상 본문

컴퓨터 네트워크

[컴퓨터 네트워크] 네트워크의 응용 계층 - 콘텐츠 협상

alisongeeone 2024. 10. 11. 11:37
1. 쿠키
2. 캐시
3. 콘텐츠 협상
4. 보안 : SSL/TLS와 HTTPS

 

콘텐츠 협상

 

 

서버와 클라이언트가 HTTP 메시지를 통해 주고받는 것을 간단히 말하면 '자원'이라고 할 수 있지만, 조금 더 구체적으로 말하면 '자원의 표현 representation'입니다. 여기서 표현 representation은 '송수신 가능한 자원의 형태' 를 의미합니다.

 

같은 URI(URL)에 대해서도 한국어로 표현된 자원, 영어로 표현된 자원 등 다른 자원의 표현이 있을 수 있습니다. 

 

 

콘텐츠 협상이란? (content negotiation)

  • 같은 자원에 대해 할 수 있는 여러 표현 중 클라이언트가 가장 적합한 자원의 표현을 제공하는 기술
  • 자원에 대한 다양한 표현 중 클라이언트가 선호하는 자원의 표현을 콘텐츠 협상 헤더를 통해 서버에게 전송하면 서버는 클라이언트가 요청한 자원의 표현을 응답합니다. 

 

콘텐츠 협상 헤더

  • Accept : 선호하는 미디어 타입을 나타내는 헤더
  • Accept-Language : 선호하는 언어를 나타내는 헤더
  • Accept-Encoding : 선호하는 인코딩 방식을 나타내는 헤더
요청 메시지 예시
GET /index.html HTTP/1.1
Host : example.com
Accept-Language : ko
Accept : text/html

 

 

자원의 표현 선호도

  • 클라이언트가 우선순위를 반영하여 여러 자원의 표현에 대한 선호도를 서버에 알릴 수도 있습니다.
  • ex. '언어는 한국어를 가장 선호하지만, 영어도 받을 용의가 있다.', '미디어 타입은 HTML 문서를 가장 선호하지만, XML을 그 다음으로 선호하고, 일반 텍스트를 그 다음으로 선호한다'
  • 이러한 우선순위는 콘텐츠 협상 관련 헤더의 q값으로 표현됩니다. 
  • q값은 0부터 1까지의 표현 범위 중 생략되었을 때는 1이 되고, 값이 클수록 우선순위가 높아집니다.