콘텐츠 협상

수달·2021년 2월 20일
0

HTTP

목록 보기
10/14
post-thumbnail
post-custom-banner

협상 (콘텐츠 네고시에이션)

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

  • accept : 클라이언트가 선호하는 미디어 타입을 전달해주세요.
  • accept -charset : 클라이언트가 선호하는 문자 인코딩을 주세요
  • accept -encoding : 클라이언트가 선호하는 압축 인코딩을 주세요
  • accept- Language : 클라이언트가 선호하는 자연 언어로 해주세요.

전체적으로 협상 헤더는 요청시에만 사용한다.

예시

클라이언트가 - accept- Language 로 한국어를 원했는데, 서버에서는 독일어와 영어만 지원을 한다고 가정한다. 서버에서는 한국어가 없기 때문에 제일 첫번째로 지원하는 독일어를 보낸다.
그럼 클라이언트는 원하는 결과를 가져온 것인가? 아니다.
이런 문제점을 해결하기 위해서 협상의 우선순위를 지정한다.

1부터 0까지 우선순위를 부여해서
우선순위대로 지원을 해준다. 위에 예시에 적용시키면
영어가 지원된다.

전송 방식

  • 단순 전송
    요청을 하면 응답을 주는데, 메세지 바디에 대한 컨텐트 길이를 반환해준다.
  • 압축 전송
    모든 데이터를 그대로 보내면 용량을 많이 차지하기 때문에 압축해서 전송한다. 그리고 컨텐트 인코딩을 사용해서 어떤 방식으로 압축되어 있는지 알려준다.

  • 분할 전송
    chunked는 덩어리라는 뜻이다. 내가 덩어를 쪼개서 보낼거라는 뜻이다.
    이렇게 보낼 때는 컨텐트 랭쓰를 보내면 안된다.
  1. 내용의 길이를 예상할 수 없기 때문이다.
  • 범위 전송
    이미지를 받았는데, 절반정도 받았을 때 처음부터 다시 받으면 손해니까
    범위를 지정해서 다시 보내달라고 할 수 있다.

profile
짜장면 쟁이
post-custom-banner

0개의 댓글