chrome.webRequest

설명

chrome.webRequest API를 사용하여 트래픽을 관찰 및 분석하고 진행 중인 요청을 가로채거나 차단하거나 수정하세요.

권한

webRequest

웹 요청을 사용하려면 확장 프로그램 매니페스트에서 "webRequest" 권한을 선언해야 합니다. API와 필요한 호스트 권한이 함께 있어야 합니다. 하위 리소스 요청을 가로채기 위해 확장 프로그램은 요청된 URL과 개시자 모두에 액세스할 수 있어야 합니다. 예를 들면 다음과 같습니다.

{
  "name": "My extension",
  ...
  "permissions": [
    "webRequest"
  ],
  "host_permissions": [
    "*://*.google.com/*"
  ],
  ...
}

webRequestBlocking

차단 이벤트 핸들러를 등록하는 데 필요합니다. Manifest V3부터 정책을 통해 설치된 확장 프로그램에 사용할 수 있습니다.

webRequestAuthProvider

onAuthRequired 메서드를 사용해야 합니다. 자세한 내용은 인증 처리.

개념 및 사용법

요청 수명 주기

웹 요청 API는 웹 요청의 수명 주기를 따르는 이벤트 집합을 정의합니다. 이때 사용하여 트래픽을 관찰하고 분석합니다 특정 동기 이벤트를 사용하면 차단하거나 요청을 수정할 수 있습니다.

다음은 성공적인 요청의 이벤트 수명 주기와 그 다음에 이벤트 정의에 대한 설명입니다.

webrequest API의 관점에서 본 웹 요청의 수명 주기

onBeforeRequest (선택적으로 동기식)
요청이 발생하려고 하면 실행됩니다. 이 이벤트는 TCP 연결이 이루어지기 전에 전송되며 요청을 취소하거나 리디렉션하는 데 사용됩니다.
onBeforeSendHeaders (선택적으로 동기식)
요청이 발생하려고 하고 초기 헤더가 준비되면 실행됩니다. 이벤트: 확장 프로그램이 요청 헤더를 추가, 수정, 삭제할 수 있도록 하기 위한 용도입니다(*). 이 onBeforeSendHeaders 이벤트가 모든 구독자에게 전달되므로 서로 다른 구독자는 요청을 수정합니다. 처리 방법은 구현 세부정보 섹션을 참고하세요. 이 일정 요청을 취소하는 데 사용할 수 있습니다.
onSendHeaders
모든 확장 프로그램이 요청 헤더를 수정한 후 실행되며 최종 (*) 버전 이벤트는 헤더가 네트워크로 전송되기 전에 트리거됩니다. 일정: 비동기식으로 처리됩니다 요청을 수정하거나 취소할 수는 없습니다.
onHeadersReceived (선택적으로 동기식)
HTTP(S) 응답 헤더가 수신될 때마다 실행됩니다. 리디렉션 및 인증으로 인해 요청당 이러한 상황이 여러 번 발생할 수 있습니다. 이 이벤트는 확장 프로그램이 수신 Content-Type 헤더와 같은 응답 헤더를 추가, 수정 및 삭제할 수 있습니다. 캐싱 지시문은 이 이벤트가 트리거되기 전에 처리되므로 Cache-Control과 같은 헤더를 수정하면 영향을 미치지 않습니다. 또한 요청을 취소하거나 리디렉션할 수도 있습니다.
onAuthRequired (선택적으로 동기식)
요청에 사용자 인증이 필요할 때 실행됩니다. 이 이벤트는 사용자 인증 정보를 제공합니다 확장 프로그램에서 잘못된 사용자 인증 정보를 제공할 수 있습니다. 좋은 하루 보내세요. 무한 루프에 들어가지 않도록 하는 것이 좋습니다. 이는 다음을 수행하는 데에도 사용할 수 있습니다. 요청을 취소합니다.
onBeforeRedirect
리디렉션이 실행되려고 할 때 실행됩니다. 리디렉션은 HTTP 응답에 의해 트리거될 수 있음 확장 프로그램을 통해 이루어집니다 이 이벤트는 정보를 제공하며 비동기식으로 처리됩니다. 사용자는 이 요청을 수정하거나 취소할 수 있습니다.
onResponseStarted
응답 본문의 첫 번째 바이트가 수신되면 실행됩니다. HTTP 요청의 경우 이는 상태 행 및 응답 헤더를 사용할 수 있습니다. 이 이벤트는 정보를 제공하며 처리됩니다. 있습니다. 요청을 수정하거나 취소할 수는 없습니다.
onCompleted
요청이 성공적으로 처리되면 실행됩니다.
onErrorOccurred
요청을 성공적으로 처리하지 못하면 실행됩니다.

웹 요청 API는 각 요청에서 onCompleted 또는 onErrorOccurred이 마지막 이벤트로 실행됩니다. 단, 요청이 data:// URL로 리디렉션되는 경우에는 onBeforeRedirect은(는) 마지막으로 보고된 이벤트입니다.

* 웹 요청 API는 확장 프로그램에 대한 네트워크 스택의 추상화를 나타냅니다. 내부적으로 하나의 URL 요청을 여러 HTTP 요청으로 나눌 수 있습니다 (예: 바이트 범위)에서 읽을 수 있거나, 네트워크 스택에 의해 처리되어 네트워크에 속합니다. 따라서 API는 네트워크에 속합니다. 예를 들어 캐싱과 관련된 모든 헤더는 확장 프로그램에 표시되지 않습니다.

다음 헤더는 현재 onBeforeSendHeaders 이벤트에 제공되지 않습니다. 이 목록 완전하거나 안정적이지 않을 수 있습니다

  • 승인
  • Cache-Control
  • 연결
  • 콘텐츠-길이
  • 호스트
  • If-Modified-Since
  • If-None-Match
  • If-범위
  • 일부 데이터
  • 프라그마
  • 프록시 승인
  • 프록시-연결
  • Transfer-Encoding

Chrome 79부터 요청 헤더 수정은 교차 출처 리소스 공유 (CORS)에 영향을 미칩니다. 확인합니다 교차 출처 요청의 수정된 헤더가 기준을 충족하지 않으면 CORS 프리플라이트를 전송하여 서버에 이러한 헤더를 수락할 수 있는지 확인합니다. 정말로 필요한 경우 CORS 프로토콜을 위반하도록 헤더를 수정하는 경우 'extraHeaders'opt_extraInfoSpec 반면에 응답 헤더 수정은 CORS를 속이는 데 효과가 없습니다. 확인합니다 CORS 프로토콜을 속여야 하는 경우 'extraHeaders' 응답을 수정합니다.

Chrome 79부터 webRequest API는 CORS 프리플라이트 요청을 가로채지 않으며 기본적으로 생성됩니다 요청 URL에 대한 CORS 프리플라이트는 요청 URL의 opt_extraInfoSpec에 지정된 'extraHeaders'가 있는 리스너입니다. onBeforeRequest님은 Chrome 79에서 'extraHeaders'을 가져올 수도 있습니다.

Chrome 79부터 다음 요청 헤더가 제공되지 않으며 수정하거나 수정할 수 없습니다. opt_extraInfoSpec'extraHeaders'를 지정하지 않고 삭제됨:

  • 출발지
를 통해 개인정보처리방침을 정의할 수 있습니다.

Chrome 72부터, 교차 출처 읽기 차단 전에 응답을 수정해야 하는 경우 (CORB)가 응답을 차단할 수 있으므로 opt_extraInfoSpec'extraHeaders'를 지정해야 합니다.

Chrome 72부터 다음 요청 헤더가 제공되지 않으며 수정할 수 없습니다. 또는 opt_extraInfoSpec'extraHeaders'를 지정하지 않고 삭제합니다.

  • 동의-언어
  • Accept-Encoding
  • 리퍼러
  • 쿠키

Chrome 72부터 Set-Cookie 응답 헤더가 제공되지 않으며 수정할 수 없습니다. 또는 opt_extraInfoSpec'extraHeaders'를 지정하지 않고 삭제합니다.

Chrome 89부터 X-Frame-Options 응답 헤더를 효과적으로 수정할 수 없습니다. 또는 opt_extraInfoSpec'extraHeaders'를 지정하지 않고 삭제합니다.

webRequest API는 호스트가 지정된 확장 프로그램이 볼 수 있는 요청만 노출합니다. 권한이 있는지 확인합니다. 또한 http://, https://, ftp://, file://, ws:// (Chrome 58부터), wss:// (Chrome 58부터), urn: (Chrome 91부터) 또는 chrome-extension:// 또한 위의 스키마 중 하나를 사용하는 URL이 포함된 특정 요청도 숨겨집니다. 여기에는 other_extension_id가 사용되지 않는 chrome-extension://other_extension_id가 포함됩니다. 요청을 처리할 확장 프로그램의 ID, https://www.google.com/chrome, 기타 민감한 정보 요청만 표시합니다. 또한 확장 프로그램의 동기 XMLHttpRequests는 교착 상태를 방지하기 위해 차단 이벤트 핸들러에서 숨겨집니다. 일부의 경우 지원되는 스키마의 특성으로 인해 사용 가능한 이벤트 세트가 제한될 수 있습니다. 해당하는 프로토콜입니다. 예를 들어 스키마 파일의 경우 onBeforeRequest만, onResponseStarted, onCompleted, onErrorOccurred가 전달될 수 있습니다.

Chrome 58부터 webRequest API에서 WebSocket 핸드셰이크 요청 가로채기를 지원합니다. 핸드셰이크는 HTTP 업그레이드 요청을 통해 수행되므로 흐름은 HTTP 지향에 맞습니다. webRequest 모델 API는 다음을 가로채지 않습니다.

  • 설정된 WebSocket 연결을 통해 전송된 개별 메시지입니다.
  • WebSocket 연결을 종료합니다.

WebSocket 요청에는 리디렉션이 지원되지 않습니다.

Chrome 72부터는 확장 프로그램에 호스트가 있는 경우에만 요청을 가로챌 수 있습니다. 모두 권한을 부여해야 합니다.

Chrome 96부터 webRequest API에서 HTTP/3를 통한 WebTransport 가로채기를 지원합니다. 설정합니다. 핸드셰이크가 HTTP CONNECT 요청을 통해 이루어지므로 흐름은 HTTP 지향 webRequest 모델로 통합하게 됩니다. 참고:

  • 세션이 설정되면 확장 프로그램은 webRequest API에 연결할 수 있습니다.
  • onBeforeSendHeaders의 HTTP 요청 헤더 수정은 무시됩니다.
  • HTTP/3를 통한 WebTransport에서는 리디렉션과 인증이 지원되지 않습니다.

요청 ID

각 요청은 요청 ID로 식별됩니다. 이 ID는 브라우저 세션 내에서 고유하며 컨텍스트입니다. 요청 수명 주기 동안 일정하게 유지되며 동일한 요청의 이벤트를 일치시킬 수 있습니다. 여러 HTTP 요청은 하나의 웹 요청에 매핑됩니다. HTTP 리디렉션 또는 HTTP 인증의 경우에 대비합니다.

이벤트 리스너 등록

웹 요청에 대한 이벤트 리스너를 등록하려면 일반적인 addListener() 함수를 사용합니다. 콜백 함수를 지정하는 것 외에 필터 인수도 지정해야 하고 선택사항으로 추가 정보 인수를 지정할 수도 있습니다.

웹 요청 API의 addListener()에 대한 세 가지 인수에는 다음과 같은 정의가 있습니다.

var callback = function(details) {...};
var filter = {...};
var opt_extraInfoSpec = [...];

다음은 onBeforeRequest 이벤트를 수신 대기하는 예입니다.

chrome.webRequest.onBeforeRequest.addListener(
    callback, filter, opt_extraInfoSpec);

addListener() 호출은 필수 콜백 함수를 첫 번째 매개변수로 사용합니다. 이 콜백은 함수에 현재 URL 요청에 대한 정보가 포함된 사전이 전달됩니다. 이 이 사전에 있는 정보는 특정 이벤트 유형 및 opt_extraInfoSpec

선택사항인 opt_extraInfoSpec 배열에 'blocking' 문자열이 포함된 경우( 특정 이벤트)의 경우 콜백 함수는 동기식으로 처리됩니다. 즉, 요청이 콜백 함수가 반환될 때까지 차단됩니다. 이 경우 콜백은 webRequest.BlockingResponse: 요청의 추가 수명 주기를 결정합니다. 상황에 따라 이 응답을 사용하면 요청 (onBeforeRequest)을 취소하거나 리디렉션할 수 있습니다. 요청 취소 또는 헤더 수정 (onBeforeSendHeaders, onHeadersReceived) 요청 취소 또는 사용자 인증 정보 제공 (onAuthRequired)

선택사항인 opt_extraInfoSpec 배열에 'asyncBlocking' 문자열이 대신 포함된 경우( onAuthRequired에 허용되는 경우) 확장 프로그램은 webRequest.BlockingResponse를 생성할 수 있습니다. 있습니다.

webRequest.RequestFilter filter를 사용하면 다양한 측정기준에서 트리거됨:

URL
URL 패턴(예: *://www.google.com/foo*bar)
유형
main_frame (최상위 프레임용으로 로드되는 문서), sub_frame( 문서) 및 image (웹사이트의 이미지)를 지원합니다. 자세한 내용은 webRequest.RequestFilter
탭 ID
탭 한 개의 식별자입니다.
창 ID
창의 식별자입니다.

이벤트 유형에 따라 opt_extraInfoSpec에 문자열을 지정하여 추가 매개변수를 요청할 수 있습니다. 요청 정보 요청 데이터에 대한 세부정보를 제공하는 용도로만 사용됩니다. 명시적으로 요청된 경우

인증 처리

HTTP 인증 요청을 처리하려면 "webRequestAuthProvider"을 추가합니다. 권한을 부여할 수 있습니다.

{
  "permissions": [
    "webRequest",
    "webRequestAuthProvider"
  ]
}

이 권한은 "webRequestBlocking" 권한

사용자 인증 정보를 동기식으로 제공하려면 다음 안내를 따르세요.

chrome.webRequest.onAuthRequired.addListener((details) => {
    return {
      authCredentials: {
        username: 'guest',
        password: 'guest'
      }
    };
  },
  { urls: ['https://httpbin.org/basic-auth/guest/guest'] },
  ['blocking']
);

사용자 인증 정보를 비동기식으로 제공하려면 다음 안내를 따르세요.

chrome.webRequest.onAuthRequired.addListener((details, callback) => {
    callback({
      authCredentials: {
        username: 'guest',
        password: 'guest'
      }
    });
  },
  { urls: ['https://httpbin.org/basic-auth/guest/guest'] },
  ['asyncBlocking']
);

구현 세부정보

Google Cloud Platform을 사용하는 확장 프로그램을 개발할 때는 웹 요청 API:

web_accessible_resources

확장 프로그램이 webRequest API를 사용하여 공개 리소스 요청을 웹에 액세스할 수 없는 리소스로 리디렉션하는 경우 차단되며 오류가 발생합니다. 리디렉션 확장 프로그램에서 웹에 액세스할 수 없는 리소스를 소유한 경우에도 위의 사항이 적용됩니다. declarativeWebRequest API와 함께 사용할 리소스를 선언하려면 여기에 설명된 대로 "web_accessible_resources" 배열을 매니페스트에 선언하고 채워야 합니다.

충돌 해결

현재 웹 요청 API 구현에서 하나 이상의 확장 프로그램이 요청을 취소하도록 지시합니다. 확장 프로그램에서 요청을 취소하는 경우 확장 프로그램은 onErrorOccurred 이벤트를 통해 알림을 받습니다. 하나의 확장 프로그램만 한 번에 하나씩만 요청하거나 수정할 수 있습니다 둘 이상의 확장 프로그램이 요청을 수정하려고 시도하면 가장 최근에 설치된 확장 프로그램이 우선하며 나머지는 모두 무시됩니다. 다음과 같은 경우 확장 프로그램에 알림이 전송되지 않음 수정하거나 리디렉션하라는 명령은 무시되었습니다.

캐싱

Chrome은 디스크 상의 캐시와 매우 빠른 인메모리 캐시라는 두 가지 캐시를 사용합니다. 수명 주기는 인메모리 캐시는 렌더링 프로세스의 전체 기간에 연결되며 대략 탭에 해당합니다. 메모리 내 캐시에서 응답한 요청은 웹 요청 API에 표시되지 않습니다. 만약 요청 핸들러가 동작을 변경합니다 (예: 차단된 경우) 간단한 페이지 새로고침은 변경된 동작을 따르지 않을 수 있습니다. kubectl run 명령어를 사용하여 메모리 내 캐시를 플러시하기 위해 handlerBehaviorChanged()를 호출합니다. 하지 말아야 할 일 자주; 캐시를 삭제하는 것은 비용이 많이 드는 작업입니다. 전화할 필요 없음 이벤트 리스너를 등록 또는 등록 취소한 후의 handlerBehaviorChanged()입니다.

타임스탬프

웹 요청 이벤트의 timestamp 속성은 내부적으로 일관성이 보장됩니다. 한 사건을 다른 이벤트와 비교하면 이들 사이의 정확한 오프셋을 알 수 있지만 확장 프로그램 내의 현재 시간으로 호출 (예: (new Date()).getTime()를 통해)할 수도 있습니다. 예기치 않은 결과를 제공할 수 있습니다.

오류 처리

잘못된 인수를 갖는 이벤트를 등록하려고 하면 JavaScript 오류가 발생하고 이벤트 핸들러가 등록되지 않습니다. 이벤트가 처리되는 동안 오류가 발생하거나 이벤트 핸들러가 잘못된 차단 응답을 반환하면 오류 메시지가 확장 프로그램의 해당 요청에 대한 핸들러가 무시됩니다.

다음 예는 www.evil.com에 대한 모든 요청을 차단하는 방법을 보여줍니다.

chrome.webRequest.onBeforeRequest.addListener(
  function(details) {
    return {cancel: details.url.indexOf("://www.evil.com/") != -1};
  },
  {urls: ["<all_urls>"]},
  ["blocking"]
);

이 함수는 차단 이벤트 핸들러를 사용하므로 "webRequest""webRequestBlocking" 권한을 선언해야 합니다.

다음 예에서는 동일한 목표를 더 효율적인 방식으로 달성합니다. www.evil.com에 타겟팅된 확장 프로그램은 확장 프로그램에 전달할 필요가 없습니다.

chrome.webRequest.onBeforeRequest.addListener(
  function(details) { return {cancel: true}; },
  {urls: ["*://www.evil.com/*"]},
  ["blocking"]
);

다음 예는 모든 요청에서 User-Agent 헤더를 삭제하는 방법을 보여줍니다.

chrome.webRequest.onBeforeSendHeaders.addListener(
  function(details) {
    for (var i = 0; i < details.requestHeaders.length; ++i) {
      if (details.requestHeaders[i].name === 'User-Agent') {
        details.requestHeaders.splice(i, 1);
        break;
      }
    }
    return {requestHeaders: details.requestHeaders};
  },
  {urls: ["<all_urls>"]},
  ["blocking", "requestHeaders"]
);

chrome.webRequest API를 사용해 보려면 다음 안내를 따르세요. chrome-extension-samples에서 webRequest 샘플을 설치합니다. 저장소

유형

BlockingResponse

'block'이 있는 이벤트 핸들러의 값을 반환합니다. extraInfoSpec을 적용합니다. 이벤트 핸들러가 네트워크 요청을 수정하도록 허용합니다.

속성

  • authCredentials

    객체(선택사항)

    onAuthRequired 이벤트에 대한 응답으로만 사용됩니다. 설정된 경우 제공된 사용자 인증 정보를 사용하여 요청이 이루어집니다.

    • 비밀번호

      문자열

    • 사용자 이름

      문자열

  • 취소

    불리언 선택사항

    true인 경우 요청이 취소됩니다. 이렇게 하면 요청이 전송되지 않습니다. onBeforeRequest, onBeforeSendHeaders, onHeadersReceived, onAuthRequired 이벤트에 대한 응답으로 사용할 수 있습니다.

  • redirectUrl

    문자열(선택사항)

    onBeforeRequest 및 onHeadersReceived 이벤트에 대한 응답으로만 사용됩니다. 설정된 경우 원래 요청이 전송/완료되지 않고 지정된 URL로 리디렉션됩니다. data:와 같이 HTTP가 아닌 스키마로의 리디렉션은 허용됩니다. 리디렉션 작업에 의해 시작된 리디렉션은 리디렉션에 원래 요청 메서드를 사용하지만 한 가지 예외가 있습니다. 리디렉션이 onHeadersReceived 단계에서 시작되면 GET 메서드를 사용하여 리디렉션이 실행됩니다. ws://wss:// 스키마가 포함된 URL에서 리디렉션하는 것은 무시됩니다.

  • requestHeaders

    HttpHeaders 선택사항

    onBeforeSendHeaders 이벤트에 대한 응답으로만 사용됩니다. 설정하면 대신 이러한 요청 헤더를 사용하여 요청이 이루어집니다.

  • responseHeaders

    HttpHeaders 선택사항

    onHeadersReceived 이벤트에 대한 응답으로만 사용됩니다. 설정된 경우 서버가 이 응답 헤더로 응답했다고 가정합니다. 충돌 수를 제한하기 위해 헤더를 수정하려는 경우에만 responseHeaders를 반환합니다 (요청별로 하나의 확장 프로그램만 responseHeaders를 수정할 수 있음).

FormDataItem

Chrome 66 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

양식 데이터 내에 전달된 데이터를 포함합니다. urlencoded 형식의 경우 데이터가 utf-8 문자열이면 문자열로 저장되고 그렇지 않으면 ArrayBuffer로 저장됩니다. 양식 데이터의 경우 ArrayBuffer입니다. form-data가 파일 업로드를 나타내는 경우 파일 이름이 제공된 경우 파일 이름이 있는 문자열입니다.

열거형

배열 버퍼

문자열

HttpHeaders

HTTP 헤더의 배열입니다. 각 헤더는 name 키와 value 또는 binaryValue가 포함된 사전으로 표시됩니다.

유형

object[]

속성

  • binaryValue

    number[] 선택사항

    UTF-8로 표현할 수 없는 경우 HTTP 헤더의 값으로, 개별 바이트 값 (0..255)으로 저장됩니다.

  • 이름

    문자열

    HTTP 헤더의 이름입니다.

  • 문자열(선택사항)

    UTF-8로 표현될 수 있는 경우 HTTP 헤더의 값입니다.

IgnoredActionType

Chrome 70 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

열거형

'리디렉션'

"request_headers"

&quot;response_headers&quot;

&quot;auth_credentials&quot;

OnAuthRequiredOptions

Chrome 44 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

열거형

&quot;responseHeaders&quot;
응답 헤더가 이벤트에 포함되도록 지정합니다.

"blocking"
콜백 함수가 반환될 때까지 요청이 차단되도록 지정합니다.

&quot;asyncBlocking&quot;
콜백 함수가 비동기식으로 처리되도록 지정합니다.

"extraHeaders"
헤더가 교차 출처 리소스 공유 (CORS)를 위반할 수 있는지 지정합니다.

OnBeforeRedirectOptions

Chrome 44 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

열거형

&quot;responseHeaders&quot;
응답 헤더가 이벤트에 포함되도록 지정합니다.

"extraHeaders"
헤더가 교차 출처 리소스 공유 (CORS)를 위반할 수 있는지 지정합니다.

OnBeforeRequestOptions

Chrome 44 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

열거형

"blocking"
콜백 함수가 반환될 때까지 요청이 차단되도록 지정합니다.

&quot;requestBody&quot;
요청 본문이 이벤트에 포함되어야 한다고 지정합니다.

"extraHeaders"
헤더가 교차 출처 리소스 공유 (CORS)를 위반할 수 있는지 지정합니다.

OnBeforeSendHeadersOptions

Chrome 44 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

열거형

&quot;requestHeaders&quot;
요청 헤더를 이벤트에 포함하도록 지정합니다.

"blocking"
콜백 함수가 반환될 때까지 요청이 차단되도록 지정합니다.

"extraHeaders"
헤더가 교차 출처 리소스 공유 (CORS)를 위반할 수 있는지 지정합니다.

OnCompletedOptions

Chrome 44 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

열거형

&quot;responseHeaders&quot;
응답 헤더가 이벤트에 포함되도록 지정합니다.

"extraHeaders"
헤더가 교차 출처 리소스 공유 (CORS)를 위반할 수 있는지 지정합니다.

OnErrorOccurredOptions

Chrome 79 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

"extraHeaders"

OnHeadersReceivedOptions

Chrome 44 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

열거형

"blocking"
콜백 함수가 반환될 때까지 요청이 차단되도록 지정합니다.

&quot;responseHeaders&quot;
응답 헤더가 이벤트에 포함되도록 지정합니다.

"extraHeaders"
헤더가 교차 출처 리소스 공유 (CORS)를 위반할 수 있는지 지정합니다.

OnResponseStartedOptions

Chrome 44 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

열거형

&quot;responseHeaders&quot;
응답 헤더가 이벤트에 포함되도록 지정합니다.

"extraHeaders"
헤더가 교차 출처 리소스 공유 (CORS)를 위반할 수 있는지 지정합니다.

OnSendHeadersOptions

Chrome 44 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

열거형

&quot;requestHeaders&quot;
요청 헤더를 이벤트에 포함하도록 지정합니다.

"extraHeaders"
헤더가 교차 출처 리소스 공유 (CORS)를 위반할 수 있는지 지정합니다.

RequestFilter

webRequest 이벤트에 적용할 필터를 설명하는 객체입니다.

속성

  • tabId

    숫자 선택사항

  • 유형

    ResourceType[] 선택사항

    요청 유형 목록입니다. 어떤 유형과도 일치하지 않는 요청은 필터링됩니다.

  • URL

    문자열[]

    URL 또는 URL 패턴의 목록입니다. 어떤 URL과도 일치하지 않는 요청은 필터링됩니다.

  • windowId

    숫자 선택사항

ResourceType

Chrome 44 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

열거형

"main_frame"
리소스를 기본 프레임으로 지정합니다.

"sub_frame"
리소스를 하위 프레임으로 지정합니다.

"stylesheet"
리소스를 스타일시트로 지정합니다.

&quot;script&quot;
리소스를 스크립트로 지정합니다.

"image"
리소스를 이미지로 지정합니다.

"font"
리소스를 글꼴로 지정합니다.

"object"
리소스를 객체로 지정합니다.

&quot;xmlhttprequest&quot;
리소스를 XMLHttpRequest로 지정합니다.

"ping"
리소스를 핑으로 지정합니다.

&quot;csp_report&quot;
리소스를 콘텐츠 보안 정책 (CSP) 보고서로 지정합니다.

"media"
리소스를 미디어 객체로 지정합니다.

"websocket"
리소스를 WebSocket으로 지정합니다.

"webbundle"
리소스를 WebBundle로 지정합니다.

"other"
리소스를 나열된 유형에 포함되지 않은 유형으로 지정합니다.

UploadData

URL 요청으로 업로드된 데이터가 포함됩니다.

속성

  • 바이트

    선택사항

    데이터 사본이 포함된 ArrayBuffer.

  • 파일

    문자열(선택사항)

    파일의 경로와 이름이 포함된 문자열입니다.

속성

MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES

10분 지속 간격당 handlerBehaviorChanged를 호출할 수 있는 최대 횟수입니다. handlerBehaviorChanged는 자주 호출해서는 안 되는 비용이 많이 드는 함수 호출입니다.

20

메서드

handlerBehaviorChanged()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.webRequest.handlerBehaviorChanged(
  callback?: function,
)

캐싱으로 인한 잘못된 처리를 방지하기 위해 webRequest 핸들러의 동작이 변경된 경우 호출해야 합니다. 이 함수 호출은 비용이 많이 듭니다. 자주 부르지 마세요.

매개변수

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • 프로미스<void>

    Chrome 116 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    프로미스는 Manifest V3 이상에서 지원되지만 이전 버전과의 호환성입니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 이 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

이벤트

onActionIgnored

Chrome 70 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.webRequest.onActionIgnored.addListener(
  callback: function,
)

확장 프로그램이 네트워크 요청에 대해 제안한 수정을 무시하면 실행됩니다. 이는 다른 확장 프로그램과 충돌할 때 발생합니다.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (details: object) => void

    • 세부정보

      객체

      • 제안된 액션이며 무시되었습니다.

      • requestId

        문자열

        요청의 ID입니다. 요청 ID는 브라우저 세션 내에서 고유합니다. 따라서 동일한 요청의 여러 이벤트를 연결하는 데 사용될 수 있습니다.

onAuthRequired

chrome.webRequest.onAuthRequired.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnAuthRequiredOptions[],
)

인증 실패가 수신되면 실행됩니다. 리스너에는 세 가지 옵션이 있습니다. 사용자 인증 정보를 제공하거나, 요청을 취소하고 오류 페이지를 표시하거나, 챌린지에 대해 아무 조치도 취하지 않을 수 있습니다. 잘못된 사용자 인증 정보가 제공되면 동일한 요청에 대해 여러 번 호출될 수 있습니다. extraInfoSpec 매개변수에는 'blocking' 또는 'asyncBlocking' 모드 중 하나만 지정해야 합니다.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (details: object, asyncCallback?: function) => BlockingResponse | undefined

    • 세부정보

      객체

      • Challenger

        객체

        인증을 요청하는 서버입니다.

        • 호스트

          문자열

        • 포트

          숫자

      • documentId

        문자열

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청한 문서의 UUID입니다.

      • Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        문서의 수명 주기입니다.

      • frameId

        숫자

        값 0은 요청이 메인 프레임에서 발생함을 나타냅니다. 양수 값은 요청이 발생하는 서브프레임의 ID를 나타냅니다. (하위) 프레임의 문서가 로드되면 (typemain_frame 또는 sub_frame인 경우) frameId는 외부 프레임의 ID가 아니라 이 프레임의 ID를 나타냅니다. 프레임 ID는 탭 내에서 고유합니다.

      • Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 발생한 프레임 유형입니다.

      • 개시자

        문자열(선택사항)

        Chrome 63 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 시작된 출처입니다. 리디렉션을 통해서는 변경되지 않습니다. 불투명 출처인 경우 문자열 'null' 사용됩니다.

      • isProxy

        부울

        프록시 인증의 경우 true, WWW-Authenticate의 경우 false

      • method

        문자열

        표준 HTTP 메서드입니다.

      • parentDocumentId

        문자열(선택사항)

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        이 프레임을 소유한 상위 문서의 UUID입니다. 상위 항목이 없으면 설정되지 않습니다.

      • parentFrameId

        숫자

        요청을 전송한 프레임을 래핑하는 프레임의 ID입니다. 상위 프레임이 없으면 -1로 설정합니다.

      • 렐름

        문자열(선택사항)

        서버에서 제공한 인증 영역입니다(있는 경우).

      • requestId

        문자열

        요청의 ID입니다. 요청 ID는 브라우저 세션 내에서 고유합니다. 따라서 동일한 요청의 여러 이벤트를 연결하는 데 사용될 수 있습니다.

      • responseHeaders

        HttpHeaders 선택사항

        이 응답과 함께 수신된 HTTP 응답 헤더입니다.

      • 스키마

        문자열

        인증 스키마. 예: 기본 또는 다이제스트

      • statusCode

        숫자

        Chrome 43 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        서버에서 반환한 표준 HTTP 상태 코드입니다.

      • statusLine

        문자열

        응답의 HTTP 상태 줄 또는 'HTTP/0.9 200 OK' HTTP/0.9 응답 (예: 상태 줄이 없는 응답)의 경우 문자열이며 헤더가 없는 경우 빈 문자열입니다.

      • tabId

        숫자

        요청이 발생한 탭의 ID입니다. 요청이 탭과 관련이 없다면 -1로 설정합니다.

      • timeStamp

        숫자

        이 신호가 트리거된 시간이며, 에포크 이후의 경과 시간(밀리초)입니다.

      • 유형

        요청된 리소스가 사용되는 방식입니다.

      • URL

        문자열

    • asyncCallback

      함수 선택사항

      Chrome 58 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

      asyncCallback 매개변수는 다음과 같습니다.

      (response: BlockingResponse) => void

    • returns

      BlockingResponse | 정의되지 않음

      '차단'인 경우 'extraInfoSpec' 매개변수를 지정하면 이벤트 리스너는 이 유형의 객체를 반환해야 합니다.

  • filter
  • extraInfoSpec

    OnAuthRequiredOptions[] 선택사항

onBeforeRedirect

chrome.webRequest.onBeforeRedirect.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeRedirectOptions[],
)

서버에서 시작된 리디렉션이 실행되려고 할 때 실행됩니다.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (details: object) => void

    • 세부정보

      객체

      • documentId

        문자열

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청한 문서의 UUID입니다.

      • Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        문서의 수명 주기입니다.

      • frameId

        숫자

        값 0은 요청이 메인 프레임에서 발생함을 나타냅니다. 양수 값은 요청이 발생하는 서브프레임의 ID를 나타냅니다. (하위) 프레임의 문서가 로드되면 (typemain_frame 또는 sub_frame인 경우) frameId는 외부 프레임의 ID가 아니라 이 프레임의 ID를 나타냅니다. 프레임 ID는 탭 내에서 고유합니다.

      • Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 발생한 프레임 유형입니다.

      • fromCache

        부울

        디스크 캐시에서 이 응답을 가져왔는지 여부를 나타냅니다.

      • 개시자

        문자열(선택사항)

        Chrome 63 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 시작된 출처입니다. 리디렉션을 통해서는 변경되지 않습니다. 불투명 출처인 경우 문자열 'null' 사용됩니다.

      • ip

        문자열(선택사항)

        요청이 실제로 전송된 서버 IP 주소입니다. 리터럴 IPv6 주소일 수도 있습니다.

      • method

        문자열

        표준 HTTP 메서드입니다.

      • parentDocumentId

        문자열(선택사항)

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        이 프레임을 소유한 상위 문서의 UUID입니다. 상위 항목이 없으면 설정되지 않습니다.

      • parentFrameId

        숫자

        요청을 전송한 프레임을 래핑하는 프레임의 ID입니다. 상위 프레임이 없으면 -1로 설정합니다.

      • redirectUrl

        문자열

        새 URL입니다.

      • requestId

        문자열

        요청의 ID입니다. 요청 ID는 브라우저 세션 내에서 고유합니다. 따라서 동일한 요청의 여러 이벤트를 연결하는 데 사용될 수 있습니다.

      • responseHeaders

        HttpHeaders 선택사항

        이 리디렉션과 함께 수신된 HTTP 응답 헤더입니다.

      • statusCode

        숫자

        서버에서 반환한 표준 HTTP 상태 코드입니다.

      • statusLine

        문자열

        응답의 HTTP 상태 줄 또는 'HTTP/0.9 200 OK' HTTP/0.9 응답 (예: 상태 줄이 없는 응답)의 경우 문자열이며 헤더가 없는 경우 빈 문자열입니다.

      • tabId

        숫자

        요청이 발생한 탭의 ID입니다. 요청이 탭과 관련이 없다면 -1로 설정합니다.

      • timeStamp

        숫자

        이 신호가 트리거된 시간이며, 에포크 이후의 경과 시간(밀리초)입니다.

      • 유형

        요청된 리소스가 사용되는 방식입니다.

      • URL

        문자열

  • filter
  • extraInfoSpec

    OnBeforeRedirectOptions[] 선택사항

onBeforeRequest

chrome.webRequest.onBeforeRequest.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeRequestOptions[],
)

요청이 발생하려고 할 때 실행됩니다.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (details: object) => BlockingResponse | undefined

    • 세부정보

      객체

      • documentId

        문자열(선택사항)

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청한 문서의 UUID입니다.

      • documentLifecycle
        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        문서의 수명 주기입니다.

      • frameId

        숫자

        값 0은 요청이 메인 프레임에서 발생함을 나타냅니다. 양수 값은 요청이 발생하는 서브프레임의 ID를 나타냅니다. (하위) 프레임의 문서가 로드되면 (typemain_frame 또는 sub_frame인 경우) frameId는 외부 프레임의 ID가 아니라 이 프레임의 ID를 나타냅니다. 프레임 ID는 탭 내에서 고유합니다.

      • frameType
        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 발생한 프레임 유형입니다.

      • 개시자

        문자열(선택사항)

        Chrome 63 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 시작된 출처입니다. 리디렉션을 통해서는 변경되지 않습니다. 불투명 출처인 경우 문자열 'null' 사용됩니다.

      • method

        문자열

        표준 HTTP 메서드입니다.

      • parentDocumentId

        문자열(선택사항)

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        이 프레임을 소유한 상위 문서의 UUID입니다. 상위 항목이 없으면 설정되지 않습니다.

      • parentFrameId

        숫자

        요청을 전송한 프레임을 래핑하는 프레임의 ID입니다. 상위 프레임이 없으면 -1로 설정합니다.

      • requestBody

        객체(선택사항)

        HTTP 요청 본문 데이터를 포함합니다. extraInfoSpec에 'requestBody'가 포함된 경우에만 제공됩니다.

        • 오류

          문자열(선택사항)

          요청 본문 데이터를 가져오는 중에 오류가 발생했습니다.

        • formData

          객체(선택사항)

          요청 메서드가 POST이고 본문이 UTF8로 인코딩되고 multipart/form-data 또는 application/x-www-form-urlencoded로 인코딩된 키-값 쌍의 시퀀스인 경우, 이 사전이 존재하며, 각 키에 대해 해당 키에 대한 모든 값의 목록이 포함됩니다. 데이터가 다른 미디어 유형이거나 형식이 잘못된 경우 사전이 표시되지 않습니다. 이 사전의 예시 값은 {'key': ['value1', 'value2']}입니다.

        • 원시

          UploadData[] 선택사항

          요청 메서드가 PUT 또는 POST이고 본문이 아직 formData에서 파싱되지 않은 경우 파싱되지 않은 요청 본문 요소가 이 배열에 포함됩니다.

      • requestId

        문자열

        요청의 ID입니다. 요청 ID는 브라우저 세션 내에서 고유합니다. 따라서 동일한 요청의 여러 이벤트를 연결하는 데 사용될 수 있습니다.

      • tabId

        숫자

        요청이 발생한 탭의 ID입니다. 요청이 탭과 관련이 없다면 -1로 설정합니다.

      • timeStamp

        숫자

        이 신호가 트리거된 시간이며, 에포크 이후의 경과 시간(밀리초)입니다.

      • 유형

        요청된 리소스가 사용되는 방식입니다.

      • URL

        문자열

    • returns

      BlockingResponse | 정의되지 않음

      '차단'인 경우 'extraInfoSpec' 매개변수를 지정하면 이벤트 리스너는 이 유형의 객체를 반환해야 합니다.

  • filter
  • extraInfoSpec

    OnBeforeRequestOptions[] 선택사항

onBeforeSendHeaders

chrome.webRequest.onBeforeSendHeaders.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnBeforeSendHeadersOptions[],
)

요청 헤더를 사용할 수 있게 되면 HTTP 요청을 보내기 전에 실행됩니다. 이 오류는 서버에 TCP가 연결된 후 HTTP 데이터가 전송되기 전에 발생할 수 있습니다.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (details: object) => BlockingResponse | undefined

    • 세부정보

      객체

      • documentId

        문자열

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청한 문서의 UUID입니다.

      • Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        문서의 수명 주기입니다.

      • frameId

        숫자

        값 0은 요청이 메인 프레임에서 발생함을 나타냅니다. 양수 값은 요청이 발생하는 서브프레임의 ID를 나타냅니다. (하위) 프레임의 문서가 로드되면 (typemain_frame 또는 sub_frame인 경우) frameId는 외부 프레임의 ID가 아니라 이 프레임의 ID를 나타냅니다. 프레임 ID는 탭 내에서 고유합니다.

      • Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 발생한 프레임 유형입니다.

      • 개시자

        문자열(선택사항)

        Chrome 63 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 시작된 출처입니다. 리디렉션을 통해서는 변경되지 않습니다. 불투명 출처인 경우 문자열 'null' 사용됩니다.

      • method

        문자열

        표준 HTTP 메서드입니다.

      • parentDocumentId

        문자열(선택사항)

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        이 프레임을 소유한 상위 문서의 UUID입니다. 상위 항목이 없으면 설정되지 않습니다.

      • parentFrameId

        숫자

        요청을 전송한 프레임을 래핑하는 프레임의 ID입니다. 상위 프레임이 없으면 -1로 설정합니다.

      • requestHeaders

        HttpHeaders 선택사항

        이 요청과 함께 전송될 HTTP 요청 헤더입니다.

      • requestId

        문자열

        요청의 ID입니다. 요청 ID는 브라우저 세션 내에서 고유합니다. 따라서 동일한 요청의 여러 이벤트를 연결하는 데 사용될 수 있습니다.

      • tabId

        숫자

        요청이 발생한 탭의 ID입니다. 요청이 탭과 관련이 없다면 -1로 설정합니다.

      • timeStamp

        숫자

        이 신호가 트리거된 시간이며, 에포크 이후의 경과 시간(밀리초)입니다.

      • 유형

        요청된 리소스가 사용되는 방식입니다.

      • URL

        문자열

    • returns

      BlockingResponse | 정의되지 않음

      '차단'인 경우 'extraInfoSpec' 매개변수를 지정하면 이벤트 리스너는 이 유형의 객체를 반환해야 합니다.

  • filter
  • extraInfoSpec

onCompleted

chrome.webRequest.onCompleted.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnCompletedOptions[],
)

요청이 완료되면 실행됩니다.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (details: object) => void

    • 세부정보

      객체

      • documentId

        문자열

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청한 문서의 UUID입니다.

      • Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        문서의 수명 주기입니다.

      • frameId

        숫자

        값 0은 요청이 메인 프레임에서 발생함을 나타냅니다. 양수 값은 요청이 발생하는 서브프레임의 ID를 나타냅니다. (하위) 프레임의 문서가 로드되면 (typemain_frame 또는 sub_frame인 경우) frameId는 외부 프레임의 ID가 아니라 이 프레임의 ID를 나타냅니다. 프레임 ID는 탭 내에서 고유합니다.

      • Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 발생한 프레임 유형입니다.

      • fromCache

        부울

        디스크 캐시에서 이 응답을 가져왔는지 여부를 나타냅니다.

      • 개시자

        문자열(선택사항)

        Chrome 63 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 시작된 출처입니다. 리디렉션을 통해서는 변경되지 않습니다. 불투명 출처인 경우 문자열 'null' 사용됩니다.

      • ip

        문자열(선택사항)

        요청이 실제로 전송된 서버 IP 주소입니다. 리터럴 IPv6 주소일 수도 있습니다.

      • method

        문자열

        표준 HTTP 메서드입니다.

      • parentDocumentId

        문자열(선택사항)

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        이 프레임을 소유한 상위 문서의 UUID입니다. 상위 항목이 없으면 설정되지 않습니다.

      • parentFrameId

        숫자

        요청을 전송한 프레임을 래핑하는 프레임의 ID입니다. 상위 프레임이 없으면 -1로 설정합니다.

      • requestId

        문자열

        요청의 ID입니다. 요청 ID는 브라우저 세션 내에서 고유합니다. 따라서 동일한 요청의 여러 이벤트를 연결하는 데 사용될 수 있습니다.

      • responseHeaders

        HttpHeaders 선택사항

        이 응답과 함께 수신된 HTTP 응답 헤더입니다.

      • statusCode

        숫자

        서버에서 반환한 표준 HTTP 상태 코드입니다.

      • statusLine

        문자열

        응답의 HTTP 상태 줄 또는 'HTTP/0.9 200 OK' HTTP/0.9 응답 (예: 상태 줄이 없는 응답)의 경우 문자열이며 헤더가 없는 경우 빈 문자열입니다.

      • tabId

        숫자

        요청이 발생한 탭의 ID입니다. 요청이 탭과 관련이 없다면 -1로 설정합니다.

      • timeStamp

        숫자

        이 신호가 트리거된 시간이며, 에포크 이후의 경과 시간(밀리초)입니다.

      • 유형

        요청된 리소스가 사용되는 방식입니다.

      • URL

        문자열

  • filter
  • extraInfoSpec

    OnCompletedOptions[] 선택사항

onErrorOccurred

chrome.webRequest.onErrorOccurred.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnErrorOccurredOptions[],
)

오류가 발생하면 실행됩니다.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (details: object) => void

    • 세부정보

      객체

      • documentId

        문자열

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청한 문서의 UUID입니다. 요청이 프레임 탐색인 경우 이 값이 없습니다.

      • Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        문서의 수명 주기입니다.

      • 오류

        문자열

        오류 설명입니다. 이 문자열은 버전 간에 이전 버전과의 호환성을 유지한다고 보장하지 않습니다. 해당 콘텐츠를 파싱하여 이에 따라 조치를 취해서는 안 됩니다.

      • frameId

        숫자

        값 0은 요청이 메인 프레임에서 발생함을 나타냅니다. 양수 값은 요청이 발생하는 서브프레임의 ID를 나타냅니다. (하위) 프레임의 문서가 로드되면 (typemain_frame 또는 sub_frame인 경우) frameId는 외부 프레임의 ID가 아니라 이 프레임의 ID를 나타냅니다. 프레임 ID는 탭 내에서 고유합니다.

      • Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 발생한 프레임 유형입니다.

      • fromCache

        부울

        디스크 캐시에서 이 응답을 가져왔는지 여부를 나타냅니다.

      • 개시자

        문자열(선택사항)

        Chrome 63 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 시작된 출처입니다. 리디렉션을 통해서는 변경되지 않습니다. 불투명 출처인 경우 문자열 'null' 사용됩니다.

      • ip

        문자열(선택사항)

        요청이 실제로 전송된 서버 IP 주소입니다. 리터럴 IPv6 주소일 수도 있습니다.

      • method

        문자열

        표준 HTTP 메서드입니다.

      • parentDocumentId

        문자열(선택사항)

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        이 프레임을 소유한 상위 문서의 UUID입니다. 상위 항목이 없으면 설정되지 않습니다.

      • parentFrameId

        숫자

        요청을 전송한 프레임을 래핑하는 프레임의 ID입니다. 상위 프레임이 없으면 -1로 설정합니다.

      • requestId

        문자열

        요청의 ID입니다. 요청 ID는 브라우저 세션 내에서 고유합니다. 따라서 동일한 요청의 여러 이벤트를 연결하는 데 사용될 수 있습니다.

      • tabId

        숫자

        요청이 발생한 탭의 ID입니다. 요청이 탭과 관련이 없다면 -1로 설정합니다.

      • timeStamp

        숫자

        이 신호가 트리거된 시간이며, 에포크 이후의 경과 시간(밀리초)입니다.

      • 유형

        요청된 리소스가 사용되는 방식입니다.

      • URL

        문자열

  • filter
  • extraInfoSpec

    OnErrorOccurredOptions[] 선택사항

onHeadersReceived

chrome.webRequest.onHeadersReceived.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnHeadersReceivedOptions[],
)

요청의 HTTP 응답 헤더가 수신되면 실행됩니다.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (details: object) => BlockingResponse | undefined

    • 세부정보

      객체

      • documentId

        문자열

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청한 문서의 UUID입니다.

      • Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        문서의 수명 주기입니다.

      • frameId

        숫자

        값 0은 요청이 메인 프레임에서 발생함을 나타냅니다. 양수 값은 요청이 발생하는 서브프레임의 ID를 나타냅니다. (하위) 프레임의 문서가 로드되면 (typemain_frame 또는 sub_frame인 경우) frameId는 외부 프레임의 ID가 아니라 이 프레임의 ID를 나타냅니다. 프레임 ID는 탭 내에서 고유합니다.

      • Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 발생한 프레임 유형입니다.

      • 개시자

        문자열(선택사항)

        Chrome 63 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 시작된 출처입니다. 리디렉션을 통해서는 변경되지 않습니다. 불투명 출처인 경우 문자열 'null' 사용됩니다.

      • method

        문자열

        표준 HTTP 메서드입니다.

      • parentDocumentId

        문자열(선택사항)

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        이 프레임을 소유한 상위 문서의 UUID입니다. 상위 항목이 없으면 설정되지 않습니다.

      • parentFrameId

        숫자

        요청을 전송한 프레임을 래핑하는 프레임의 ID입니다. 상위 프레임이 없으면 -1로 설정합니다.

      • requestId

        문자열

        요청의 ID입니다. 요청 ID는 브라우저 세션 내에서 고유합니다. 따라서 동일한 요청의 여러 이벤트를 연결하는 데 사용될 수 있습니다.

      • responseHeaders

        HttpHeaders 선택사항

        이 응답과 함께 수신된 HTTP 응답 헤더입니다.

      • statusCode

        숫자

        Chrome 43 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        서버에서 반환한 표준 HTTP 상태 코드입니다.

      • statusLine

        문자열

        응답의 HTTP 상태 줄 또는 'HTTP/0.9 200 OK' HTTP/0.9 응답 (예: 상태 표시줄이 없는 응답)의 문자열입니다.

      • tabId

        숫자

        요청이 발생한 탭의 ID입니다. 요청이 탭과 관련이 없다면 -1로 설정합니다.

      • timeStamp

        숫자

        이 신호가 트리거된 시간이며, 에포크 이후의 경과 시간(밀리초)입니다.

      • 유형

        요청된 리소스가 사용되는 방식입니다.

      • URL

        문자열

    • returns

      BlockingResponse | 정의되지 않음

      '차단'인 경우 'extraInfoSpec' 매개변수를 지정하면 이벤트 리스너는 이 유형의 객체를 반환해야 합니다.

  • filter
  • extraInfoSpec

    OnHeadersReceivedOptions[] 선택사항

onResponseStarted

chrome.webRequest.onResponseStarted.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnResponseStartedOptions[],
)

응답 본문의 첫 번째 바이트가 수신되면 실행됩니다. 이는 HTTP 요청의 경우 상태 줄과 응답 헤더를 사용할 수 있음을 의미합니다.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (details: object) => void

    • 세부정보

      객체

      • documentId

        문자열

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청한 문서의 UUID입니다.

      • Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        문서의 수명 주기입니다.

      • frameId

        숫자

        값 0은 요청이 메인 프레임에서 발생함을 나타냅니다. 양수 값은 요청이 발생하는 서브프레임의 ID를 나타냅니다. (하위) 프레임의 문서가 로드되면 (typemain_frame 또는 sub_frame인 경우) frameId는 외부 프레임의 ID가 아니라 이 프레임의 ID를 나타냅니다. 프레임 ID는 탭 내에서 고유합니다.

      • Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 발생한 프레임 유형입니다.

      • fromCache

        부울

        디스크 캐시에서 이 응답을 가져왔는지 여부를 나타냅니다.

      • 개시자

        문자열(선택사항)

        Chrome 63 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 시작된 출처입니다. 리디렉션을 통해서는 변경되지 않습니다. 불투명 출처인 경우 문자열 'null' 사용됩니다.

      • ip

        문자열(선택사항)

        요청이 실제로 전송된 서버 IP 주소입니다. 리터럴 IPv6 주소일 수도 있습니다.

      • method

        문자열

        표준 HTTP 메서드입니다.

      • parentDocumentId

        문자열(선택사항)

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        이 프레임을 소유한 상위 문서의 UUID입니다. 상위 항목이 없으면 설정되지 않습니다.

      • parentFrameId

        숫자

        요청을 전송한 프레임을 래핑하는 프레임의 ID입니다. 상위 프레임이 없으면 -1로 설정합니다.

      • requestId

        문자열

        요청의 ID입니다. 요청 ID는 브라우저 세션 내에서 고유합니다. 따라서 동일한 요청의 여러 이벤트를 연결하는 데 사용될 수 있습니다.

      • responseHeaders

        HttpHeaders 선택사항

        이 응답과 함께 수신된 HTTP 응답 헤더입니다.

      • statusCode

        숫자

        서버에서 반환한 표준 HTTP 상태 코드입니다.

      • statusLine

        문자열

        응답의 HTTP 상태 줄 또는 'HTTP/0.9 200 OK' HTTP/0.9 응답 (예: 상태 줄이 없는 응답)의 경우 문자열이며 헤더가 없는 경우 빈 문자열입니다.

      • tabId

        숫자

        요청이 발생한 탭의 ID입니다. 요청이 탭과 관련이 없다면 -1로 설정합니다.

      • timeStamp

        숫자

        이 신호가 트리거된 시간이며, 에포크 이후의 경과 시간(밀리초)입니다.

      • 유형

        요청된 리소스가 사용되는 방식입니다.

      • URL

        문자열

  • filter
  • extraInfoSpec

    OnResponseStartedOptions[] 선택사항

onSendHeaders

chrome.webRequest.onSendHeaders.addListener(
  callback: function,
  filter: RequestFilter,
  extraInfoSpec?: OnSendHeadersOptions[],
)

요청이 서버로 전송되기 직전에 실행됩니다 (이전 onBeforeSendHeaders 콜백의 수정사항은 onSendHeaders가 실행된 시점에 표시됨).

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (details: object) => void

    • 세부정보

      객체

      • documentId

        문자열

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청한 문서의 UUID입니다.

      • Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        문서의 수명 주기입니다.

      • frameId

        숫자

        값 0은 요청이 메인 프레임에서 발생함을 나타냅니다. 양수 값은 요청이 발생하는 서브프레임의 ID를 나타냅니다. (하위) 프레임의 문서가 로드되면 (typemain_frame 또는 sub_frame인 경우) frameId는 외부 프레임의 ID가 아니라 이 프레임의 ID를 나타냅니다. 프레임 ID는 탭 내에서 고유합니다.

      • Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 발생한 프레임 유형입니다.

      • 개시자

        문자열(선택사항)

        Chrome 63 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        요청이 시작된 출처입니다. 리디렉션을 통해서는 변경되지 않습니다. 불투명 출처인 경우 문자열 'null' 사용됩니다.

      • method

        문자열

        표준 HTTP 메서드입니다.

      • parentDocumentId

        문자열(선택사항)

        Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

        이 프레임을 소유한 상위 문서의 UUID입니다. 상위 항목이 없으면 설정되지 않습니다.

      • parentFrameId

        숫자

        요청을 전송한 프레임을 래핑하는 프레임의 ID입니다. 상위 프레임이 없으면 -1로 설정합니다.

      • requestHeaders

        HttpHeaders 선택사항

        이 요청과 함께 전송된 HTTP 요청 헤더입니다.

      • requestId

        문자열

        요청의 ID입니다. 요청 ID는 브라우저 세션 내에서 고유합니다. 따라서 동일한 요청의 여러 이벤트를 연결하는 데 사용될 수 있습니다.

      • tabId

        숫자

        요청이 발생한 탭의 ID입니다. 요청이 탭과 관련이 없다면 -1로 설정합니다.

      • timeStamp

        숫자

        이 신호가 트리거된 시간이며, 에포크 이후의 경과 시간(밀리초)입니다.

      • 유형

        요청된 리소스가 사용되는 방식입니다.

      • URL

        문자열

  • filter
  • extraInfoSpec

    OnSendHeadersOptions[] 선택사항