작업 상자 범위 요청

요청 시 서버에 전체 요청의 일부만 반환하도록 range 헤더를 설정할 수 있습니다. 이는 사용자가 동영상 재생 위치를 변경할 수 있는 동영상 파일과 같은 특정 파일에 유용합니다.

이 모듈은 어떤 역할을 하나요?

캐시된 파일을 제공하려고 하지만 브라우저에서 range 헤더를 설정한 경우가 있을 수 있습니다. 일반적으로 헤더는 무시됩니다.

이 모듈은 캐시된 응답을 읽고 지정된 데이터 범위를 반환합니다.

기본 사용법

범위 요청을 확인할 전략에 플러그인을 추가하여 작업 상자 범위 요청을 사용할 수 있습니다.

import {registerRoute} from 'workbox-routing';
import {CacheFirst} from 'workbox-strategies';
import {RangeRequestsPlugin} from 'workbox-range-requests';

registerRoute(
  ({url}) => url.pathname.endsWith('.mp4'),
  new CacheFirst({
    plugins: [
      new RangeRequestsPlugin(),
    ],
  });
);
를 참고하세요.

고급 사용법

플러그인 외부에서 이 로직을 사용하려면 createPartialResponse() 함수를 사용하면 됩니다.

import {createPartialResponse} from 'workbox-range-requests';

createPartialResponse(request, cachedResponse);

자세한 내용은 참조 문서를 확인하세요.

유형

RangeRequestsPlugin

범위 요청 플러그인을 사용하면 'Range' 헤더가 있는 요청을 캐시된 응답으로 쉽게 처리할 수 있습니다.

cachedResponseWillBeUsed 플러그인 콜백을 가로채고 캐시된 응답 본문의 적절한 하위 집합을 반환하여 이를 수행합니다.

속성

  • 생성자

    void

    constructor 함수는 다음과 같습니다.

    () => {...}

방법

createPartialResponse()

workbox-range-requests.createPartialResponse(
  request: Request,
  originalResponse: Response,
)

RequestResponse 객체를 입력으로 제공하면 새 Response의 프로미스가 반환됩니다.

원본 Response에 일부 콘텐츠가 이미 포함되어 있는 경우 (즉, 상태가 206인 경우) 이는 이미 Range: 요구사항을 충족한다고 가정하고 그대로 반환합니다.

매개변수

  • 요청

    요청

    Range: 헤더를 포함하는 요청.

  • originalResponse

    응답

    응답입니다.

반환 값

  • 프로미스<응답>

    응답 본문이 요청의 Range: 헤더에 지정된 콘텐츠 슬라이스로 설정된 206 Partial Content 응답 또는 Range: 헤더의 조건을 충족할 수 없는 경우 416 Range Not Satisfiable 응답입니다.