respond
ハードコーディングされた/静的なレスポンスをクライアントに書き込みます。
ボディが空でない場合、このディレクティブは Content-Type
ヘッダーがまだ設定されていない場合に設定します。デフォルト値はボディが有効な JSON オブジェクトまたは配列である場合に application/json
に設定される text/plain; utf-8
です。その他すべてのタイプのコンテンツの場合、header
ディレクティブ を使用して Content-Type を明示的に設定します。
構文
respond [<matcher>] <status>|<body> [<status>] {
body <text>
close
}
-
<status> は書き込まれる HTTP ステータスコードです。
103
(アーリーヒント)の場合、レスポンスはボディなしで書き込まれ、ハンドラーチェーンは続行します。(HTTP1xx
レスポンスは情報提供用であり、最終的なものではありません。)デフォルト:
200
-
<body> は書き込まれるレスポンスボディです。
-
body はボディを提供するための代替方法であり、複数行の場合に便利です。
-
close はレスポンスを書き込んだ後、サーバーへのクライアントの接続を閉じます。
明確にするために、最初の非マッチャー引数は、3 桁のステータスコードまたはレスポンスボディ文字列のいずれかになります。それがボディである場合、次の引数はステータスコードになります。
例
すべてのヘルスチェックに空の 200 ステータスと空のボディを書き込み、その他のすべてのリクエストに単純なレスポンスボディを書き込みます
example.com {
respond /health-check 200
respond "Hello, world!"
}
エラーレスポンスを書き込み、接続を閉じます
example.com {
respond /secret/* "Access denied" 403 {
close
}
}
空白を制御するヒアドキュメント構文を使用して HTML 応答を書き込み、応答本文と一致するように Content-Type
ヘッダーを設定します
example.com {
header Content-Type text/html
respond <<HTML
<html>
<head><title>Foo</title></head>
<body>Foo</body>
</html>
HTML 200
}