본문 바로가기
WIKI 기술 지식 베이스

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
		}
	}
}

더 알아보기 (Learn more)