모의 응답
Chute는 실제 서버에 도달하지 않고 일치하는 HTTP/HTTPS 요청에 모의 데이터를 반환할 수 있습니다. 이는 테스트, 개발 또는 사용자 정의 응답으로 원치 않는 콘텐츠를 차단하는 데 유용합니다.
모의 규칙은 [Map Local] 섹션에 정의됩니다(레거시 섹션 이름으로 [Mock]도 지원).
하나의 요청에 여러 규칙이 적용될 수 있습니다. URL 패턴이 일치하는 첫 번째 모의 응답이 사용됩니다.
인라인 모의 형식
인라인 콘텐츠를 사용하는 간단한 모의 응답의 경우:
[Map Local]
^http://example\.com/api/status status=200 body={"ok":true}
^http://example\.com/blocked status=403
^http://ad\.com/.* status=200 body="<html></html>" content-type="text/html"
인라인 모의 규칙은 URL 정규식과 하나 이상의 key=value 응답 매개변수로 구성됩니다.
인라인 매개변수
status: 필수.
status=200
반환할 HTTP 상태 코드입니다.
body: 선택.
body={"result":"mocked"}
반환할 응답 본문입니다. 지정하지 않으면 빈 본문이 반환됩니다.
content-type: 선택.
content-type=application/json
모의 응답의 Content-Type 헤더입니다. 적절한 응답을 제공하기 위해 body와 함께 사용합니다.
headers: 선택.
headers=X-Custom:Value1;X-Another:Value2
;로 구분된 추가 응답 헤더입니다.
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"
Map Local 매개변수
| 매개변수 | 설명 |
|---|---|
data="/path/to/file" |
응답 본문으로 제공할 파일 경로입니다. 요청 시점에 파일을 읽습니다. |
base64="<encoded>" |
Base64로 인코딩된 응답 본문 콘텐츠입니다. |
header="<base64>" |
Base64로 인코딩된 사용자 정의 응답 헤더입니다(Key: Value\n 형식). |
data=또는base64=중 하나 이상을 지정해야 합니다.
템플릿 변수
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 트래픽에 대한 모의 규칙은 무시됩니다.