Fastcgi++: как создать 404 или 503 ответа
Fastcgi++ - это библиотека для облегчения реализации серверов fastcgi в C++. И вот очень простой вариант использования, который я хочу сделать: проверить наличие файла, а если не существует, сгенерировать какое-либо сообщение об ошибке. Вот код, ищите знаки вопроса.
struct the_fastcgi_server_t: Fastcgipp::Request<char>
{
bool response()
{
using namespace Fastcgipp;
Fastcgipp::Http::Environment<char> const &env =
this->environment();
// Can I resolve the file?
std::string target_js;
try {
target_js = path_processor( env.scriptName );
} catch ( file_not_found_exc_t const& e )
{
// TODO How do I set a standard 404 here???!!
return true;
}
out << "Content-Type: text/javascript; charset=utf-8\r\n\r\n";
// ... Here I fill the response.
return true;
}
};
Любые идеи о том, как установить тип ответа?
1 ответ
Решение
Ответ в основном как здесь:
https://web.archive.org/web/20160115021335/http://www.fastcgi.com/docs/faq.html
То есть используйте фрагмент кода, подобный этому
out << "Status: 404 Not found\r\n\r\n";
в методе ответа. Это не стандартный http, но FastCGI - это просто оболочка над CGI, и именно так CGI делает это.