respond
Записывает жёстко закодированный/статический ответ клиенту.
Если тело не пустое, эта директива устанавливает заголовок Content-Type, если он ещё не установлен. Значение по умолчанию — text/plain; utf-8, если тело не является корректным JSON объектом или массивом, в противном случае оно устанавливается на application/json. Для всех других типов содержимого явно устанавливайте правильный заголовок Content-Type с помощью директивы header.
Синтаксис
respond [<matcher>] <status>|<body> [<status>] {
body <text>
close
}
-
<status> — код HTTP-статуса для записи.
Если
103(Ранние подсказки), ответ будет записан без тела, и цепочка обработчиков продолжится. (HTTP1xxответы информационные, а не окончательные.)По умолчанию:
200 -
<body> — тело ответа для записи.
-
body — альтернативный способ предоставления тела; удобно, если оно состоит из нескольких строк.
-
close — закроет соединение клиента с сервером после записи ответа.
Для уточнения, первый аргумент, не являющийся совпадением, может быть либо трёхзначным кодом статуса, либо строкой тела ответа. Если это тело, следующий аргумент может быть кодом статуса.
Примеры
Запишите пустой статус 200 с пустым телом для всех проверок работоспособности и простое тело ответа для всех других запросов:
example.com {
respond /health-check 200
respond "Hello, world!"
}
Запишите ответ об ошибке и закройте соединение:
example.com {
respond /secret/* "Access denied" 403 {
close
}
}
Запишите HTML-ответ, используя синтаксис heredoc для управления отступами, а также установите заголовок Content-Type для соответствия телу ответа:
example.com {
header Content-Type text/html
respond <<HTML <html>
<head><title>Foo</title></head>
<body>Foo</body>
</html>
HTML 200
}
© 2015-2025 Matthew Holt and The Caddy Authors
Licensed under the Apache License 2.0.
Caddy is a registered trademark of Stack Holdings GmbH.
https://caddyserver.com/docs/caddyfile/directives/respond