我已经从this tutorial复制了文件(来自" HTTP服务器"的文件),但它似乎无法正常工作。我用0.0.0.0 5000 .
运行了应用程序,但是当我尝试连接到localhost:5000页面时,我总是找不到404。该怎么做让它运行?
答案 0 :(得分:2)
如果您收到状态代码为404的HTTP响应,则HTTP服务器正在运行,处理请求并提供响应。如果服务器未运行,则不会返回HTTP响应。浏览器可能会提供有关失败的其他详细信息:
$ lsof -i tcp:5000 # verify nothing is listening to port 5000
$ curl http://localhost:5000/
curl: (7) Failed to connect to localhost port 5000: Connection refused
验证HTTP请求中请求的路径是否存在于与启动服务器时提供的doc_root
参数对应的目录中。另外,请注意,如果请求路径以/
结尾,则服务器会将index.html
附加到路径。如code所示,如果服务器无法打开路径指定的文件,则服务器将使用具有404状态代码的HTTP响应进行响应。
// Open the file to send back.
std::string full_path = doc_root_ + request_path;
std::ifstream is(full_path.c_str(), std::ios::in | std::ios::binary);
if (!is)
{
rep = reply::stock_reply(reply::not_found);
return;
}