## 요구사항과 사용 사례
이 문서는 특정 요구사항을 다루는 API를 설명한다. 즉, JS API와 Client Hint 양쪽을 통해 데이터 절약에 관한
사용자의 선호를 전달하는 것이다.
**사용 사례 예시:**
* 주된 목적이 미디어 스트리밍인 웹 애플리케이션은 사용자가 데이터 비용을 줄이는 데 관심이 있다면
고도로 압축된 미디어 콘텐츠를 제공할 수 있다.
* 사용자에게 배경 동영상을 표시하는 웹 애플리케이션은 사용자의 선호에 따라 배경 이미지 사용을 선택할 수 있다.
## NavigatorNetworkInformation 인터페이스
NetworkInformation 인터페이스는
NetworkInformationSaveData를 믹스인하여 saveData에 대한 접근을 노출한다.
interface mixin NetworkInformationSaveData {
[SameObject] readonly attribute boolean saveData;
};
NetworkInformation includes NetworkInformationSaveData;
### saveData 속성
saveData 속성은 가져올 때, 사용자가 사용자 에이전트에 데이터 사용량 감소 모드를 요청한 경우 `true`를
반환하고, 그렇지 않으면 `false`를 반환한다.
사용자는 사용자 에이전트가 이러한 선호를 제공하는 경우, 높은 데이터 전송 비용, 느린 연결 속도 또는 기타 이유로 이를 활성화할 수 있다.
####Save-Data 요청 헤더 필드
SaveData 요청 헤더는 Client Hint [[CLIENT-HINTS]]이다. 이 헤더의 값은 `token`들을 포함하는
`sh-list` [[STRUCTURED-HEADERS]]이며, 이는 데이터 사용량 감소에 대한 사용자 에이전트의 선호를 나타낸다.
Save-Data = sh-list
이 명세는 "`on`" `token` 값을 정의한다. 이 값은 데이터 사용량 감소 모드에 대한 명시적 사용자 옵트인을
나타내는 신호로 사용되며(즉, saveData의 값이 `true`일 때), 이를 오리진에 전달하면 오리진은
더 작은 이미지와 동영상 리소스, 대체 마크업 등과 같이 이러한 선호를 존중하는 대체 콘텐츠를 제공할 수 있다.
목록에 여러 개의 충돌하는 토큰이 있는 경우, 가장 마지막 토큰이 우선한다.