request_body 지시문
request_body 지시문 (요청 본문 조작/제한)
request_body 지시문은 들어오는 요청의 본문을 조작하거나 크기 제한을 설정해요. 요청 본문의 최대 크기를 정하거나, 본문 내용을 특정 값으로 바꿀 수 있어요.
출처: Caddy 공식 문서
본문
들어오는 요청의 본문에 대한 제한을 설정하거나 본문을 조작해요.
문법 (Syntax)
request_body [<matcher>] {
max_size <value>
set <body_content>
}
- max_size는 요청 본문에 허용되는 최대 크기(바이트)예요. go-humanize가 지원하는 모든 크기 값을 받아요. 그보다 많은 바이트를 읽으면 HTTP 상태
413과 함께 에러가 반환돼요.
⚠️ 실험적(Experimental) | v2.10.0+
- set은 요청 본문을 특정 내용으로 설정해요. 내용에는 데이터를 동적으로 삽입하는 placeholder를 포함할 수 있어요. 알려진 placeholder만 바뀌고, JSON 같은 중괄호 안의 다른 텍스트는 그대로 유지돼요.
request_body에서 read_timeout과 write_timeout 하위 지시문은 제거됐어요. 조건에 맞는 요청에 타임아웃을 설정하려면 timeouts 지시문을 대신 사용해요.
예시 (Examples)
요청 본문 크기를 10메가바이트로 제한해요:
example.com {
request_body {
max_size 10MB
}
reverse_proxy localhost:8080
}
SQL 쿼리를 담은 JSON 구조로 요청 본문을 설정해요:
example.com {
handle /jazz {
request_body {
set `\{"statementText":"SELECT name, genre, debut_year FROM artists WHERE genre = 'Jazz'"}`
}
reverse_proxy localhost:8080 {
header_up Content-Type application/json
method POST
rewrite /execute-sql
}
}
}