HTTP 완벽 가이드 17장 내용 협상과 트랜스코딩

DARTZ·2022년 8월 7일
0

HTTP 완벽 가이드

목록 보기
11/11

1. 내용 협상 기법

서버에 있는 페이지들 중 어떤 것이 클라이언트에게 맞는지 판단하는 세 가지 다른 방법이 있다.

  • 클라이언트 주도
  • 서버 주도
  • 투명

2. 클라이언트 주도 협상

서버에게 있어 가장 쉬운 방법은 서버가 클라이언트의 요청을 받았을 때 가능한 페이지의 목록을 응답으로 돌려주어 클라이언트가 보고 싶은 것을 선택하게 하는 것이다.

3. 서버 주도 협상

클라이언트 주도 협상은 몇 가지 단점이 있다. 이 단점들은 대부분 요청에 대한 응답으로 돌려줄 최적의 페이지를 결정하기 위한 클라이언트와 서버 사이의 커뮤니케이션을 증가 시킨다. 이를 줄이기 위한 한가지 방법은 서버가 어떤 페이지를 돌려줄 것인지 결정하게 하는 것이다.

HTTP 서버가 클라이언트에게 보내줄 적절한 응답을 계산하기 위해 사용하는 메커니즘은 다음 두 가지다.

  • 내용 협상 헤더들을 살펴본다.
  • 내용 협상 헤더 외의 다른 헤더들을 살펴본다.

1) 내용 협상 헤더

클라이언트는 HTTP 헤더들을 이용해서 자신의 선호 정보를 보낼 수 있다.

  • Accept
  • Accept-Language
  • Accept-Charset
  • Accept-Encoding

2) 내용 협상 헤더의 품질 값

HTTP 프로토콜은 클라이언트가 각 선호의 카테고리마다 여러 선택 가능한 항목을 선호도와 함께 나열할 수 있도록 품질값을 정의하였다.

3) 그 외의 헤더들에 의해 결정

서버는 또한 User-Agent와 같은 클라이언트의 다른 요청 헤더들을 이용해 알맞은 요청을 만들어내려고 시도할 수 있다.

4) 아파치의 내용 협상

5) 서버 측 확장

4. 투명 협상

투명 협상은 클라이언트 입장에서 협상하는 중개자 프락시를 둠으로써 클라이언트와의 메시지 교환을 최소화하는 동시에 서버 주도 협상으로 인한 부하를 서버에서 제거한다.

1) 캐시와 얼터네이트

2) Vary 헤더

5. 트랜스 코딩

서버가 클라인트의 요구에 맞는 문서를 아예 갖고 있지 않다면 어떻게 되는가? 서버는 에러로 응답해야겠지만, 이론적으로 서버는 기존의 문서를 클라이언트가 사용할 수 있는 무언가로 변환할 수도 있다. 이 옵션을 트랜스코딩이라고 부른다.

트랜스 코딩에는 포맷 변환, 정보 합성, 내용 주입의 세 종류가 있다.

1) 포맷 변환

데이터를 클라이언트가 볼 수 있도록 한 포맷에서 다른 포맷으로 변환하는 것이다.

2) 정보 합성

문서에서 정보의 요점을 추출하는 것을 정보 합성이라고 하는데, 이는 트랜스 코딩 과정에서 유용할 수 있다.

3) 콘텐츠 주입

양을 늘리는 또 다른 종류의 변환인 내용 주입 트랜스코딩이라는 것도 있다.

4) 트랜스코딩 vs. 정적으로 미리 생성해놓기

트랜스코딩의 대안은 웹 서버에서 웹페이지의 여러 가지 사본을 만드는 것이다.

profile
사람들이 비용을 지불하고 사용할 만큼 가치를 주는 서비스를 만들고 싶습니다.

0개의 댓글