모의 응답

Chute는 일치하는 HTTP/HTTPS 요청에 모의 데이터를 반환할 수 있습니다. 복호화된 HTTP/2 스트림의 경우 요청을 전달하지 않고 모의 응답을 로컬에서 답변합니다. HTTP/1.1 요청(일반 프록시 및 MitM HTTP/1.1)의 경우 요청은 여전히 실제 서버로 전송되며, 실제 응답이 클라이언트에 도달하기 전에 모의 데이터로 교체됩니다. 이는 테스트, 개발 또는 사용자 정의 응답으로 원치 않는 콘텐츠를 차단하는 데 유용합니다.

모의 응답 규칙은 [Map Local] 섹션에 정의됩니다.

요청당 하나의 모의 응답 규칙만 적용됩니다 — URL 패턴이 일치하는 첫 번째 규칙이 사용됩니다.

Map Local 형식

로컬 파일, 인라인 텍스트 또는 base64로 인코딩된 콘텐츠로 모의 응답을 제공하고, 상태 코드와 헤더를 지정하는 경우:

[Map Local]
^https://example\.com/api.* data="/path/to/mock-response.json"
^https://example\.com/page.* data="/path/to/page.html" header="SGVhZGVyOiBWYWx1ZQ=="
^https://example\.com/pixel.* base64="R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"
^https://example\.com/api/v2.* data-type=text data="rate limited" status-code=429 header="Content-Type: text/plain|Retry-After: 30"
^https://example\.com/beacon.* data-type=tiny-gif

주의: 정규식은 요청의 전체 URL(복호화된 요청은 https://…, Chute가 일반 HTTP 프록시일 때는 http://…) 어느 위치에서든 일치하므로, ^https://example\.com만으로 해당 호스트의 모든 경로와 쿼리 문자열이 포함되어 끝에 .*를 붙일 필요가 없습니다. 경로만 따로 놓고 대조되는 일은 없으므로 ^/api 같은 패턴은 일치하지 않습니다. 패턴의 대소문자는 유지되므로 \S, \D, \W, \B는 쓴 그대로의 의미를 가지며, 일치 자체는 대소문자를 구분하지 않습니다.

줄 맨 앞이나 공백 뒤에 오는 #나 //는 큰따옴표 안에 있지 않은 한 줄 끝까지 이어지는 주석을 시작합니다. ;은 주석이 되지 않습니다. 주석을 참고하세요.

Map Local 매개변수

매개변수 설명
data="/path/to/file" 응답 본문으로 제공할 파일 경로이며 요청 시점에 읽습니다. data-type을 함께 쓰면 본문 자체가 됩니다(아래 참조).
`data-type=file\ text\ base64\ tiny-gif` data=를 읽는 방식: file은 경로(기본값), text는 값 자체가 본문, base64는 값을 base64 디코딩, tiny-gif는 data=가 필요 없는 내장 1×1 GIF입니다(header=로 Content-Type을 지정하지 않으면 image/gif로 전송).
base64="<encoded>" Base64로 인코딩된 응답 본문 콘텐츠입니다(data-type=base64와 같음).
status-code=<code> 모의 응답의 상태 코드(200–599). 기본값 200. 범위를 벗어난 코드는 줄 전체를 무효로 만들며, 구성 오류로 보고됩니다.
`header="Key: value\ Key2: value2"` 사용자 정의 응답 헤더입니다. 쌍은 `\ 로 구분하며 각 쌍은 첫 번째 콜론에서 나뉘므로 값 자체에 콜론(URL 등)이 들어가도 됩니다. 이전의 base64 형식(base64로 인코딩한Key:Value\n` 줄)도 계속 사용할 수 있습니다.

규칙에는 본문이 필요합니다: data=(파일, 또는 data-type과 함께 쓴 텍스트/base64), base64=, 또는 data-type=tiny-gif. data= 없이 data-type=text만 쓰면 빈 본문이 됩니다. 본문을 만들 수 없는 규칙(본문 매개변수가 없거나 파일을 읽을 수 없음)은 응답하지 않으며, 요청은 그대로 서버로 가고 뒤따르는 모의 응답 규칙도 시도되지 않습니다.

주의: 두 형식 모두 각 헤더는 첫 번째 콜론에서 나뉘며, 이름과 값 앞뒤의 공백은 제거됩니다. 콜론이 없는 줄은 무시됩니다.

Chute가 직접 만드는 응답 — Map Local, 스크립트의 response, URL 재작성과 REJECT 계열 정책의 응답과 오류 페이지 — 은 HTTP를 따릅니다: HEAD 요청에 대한 응답은 헤더뿐이며 Content-Length는 GET일 때와 같고, 상태가 204, 205 또는 304인 응답에는 본문도 Content-Length도 없습니다.

템플릿 변수

data= 또는 base64= 사용 시, 응답 본문은 템플릿 변수 대체를 지원합니다:

변수 대체 값
{{url}} 규칙이 본 전체 요청 URL
{{host}} 요청 호스트명
{{path}} 상대 URL 경로
{{method}} HTTP 메서드
{{ua}} User-Agent 헤더 값

예시 모의 응답 파일 (response.json):

{
    "requested_url": "{{ "{{url}}" }}",
    "host": "{{ "{{host}}" }}",
    "method": "{{ "{{method}}" }}"
}

참고: HTTPS 요청의 경우, 일치하는 호스트명에 대해 MitM 복호화가 활성화되어야 합니다. MitM이 없는 HTTPS 트래픽에 대한 모의 응답 규칙은 무시됩니다. 일반 HTTP 요청에는 Chute의 HTTP 프록시를 거쳐 들어올 때만 응답합니다. TUN 인터페이스를 거쳐 들어오는 일반 HTTP는 손대지 않고 그대로 전달됩니다. Chute Android는 설정에서 시스템 HTTP 프록시를 켜지 않는 한 모든 트래픽을 TUN으로 보냅니다. 이 옵션을 켜면 앱에 Chute의 HTTP 프록시가 주어집니다(Android 10 이상, 기본값은 꺼짐).

주의: data=가 가리키는 파일은 Chute를 실행하는 기기가 요청 시점에 읽습니다. Chute Dashboard에서 iPhone에 모의 응답 규칙을 추가할 때 Mac의 경로는 휴대전화에 아무 의미가 없습니다 — 대신 base64=로 내용을 인라인하거나, 파일을 URL로 제공하고 URL 재작성을 쓰세요.

S. Smart Rabbit LLC © All Rights Reserved            updated 2026-09-29 21:57:05

이 페이지는 영어판의 번역본입니다. 내용이 다를 경우 영어판이 우선합니다.

results matching ""

    No results matching ""