从CGI C模块中返回HTTP错误代码(return http error code from CG

2019-10-17 21:54发布

我已经写在C&对于一些病情,我想从这个模块返回HTTP错误400 CGI模块。 问题是 - 我不知道如何从模块返回HTTP错误。

看起来像我的模块中的“回报(-1)”,返回500内部服务器错误。 我试图返回400等,但在静脉。 我甚至试过 “的printf(” 状态:400 “);” 返回-1之前(如下建议: 如何返回从C ++ CGI程序500 HTTP状态 ),但没有奏效。

在这个任何意见,将不胜感激。

编辑:[解决]我能够从Python模块(这是由该C CGI模块以后调用)返回HTTP错误代码。 所以没能尝试在下面的评论中提到的建议。 感谢提供帮助,虽然。

Answer 1:

要返回HTTP错误400 HTTP客户端,你必须写的HTTP状态行到stdout,就像这样:

printf("Status: 400 Bad Request\n");

参考: https://tools.ietf.org/html/rfc3875

在Status头域包含3位整数结果代码,表示该脚本的尝试来处理请求的成功程度。

  Status         = "Status:" status-code SP reason-phrase NL
  status-code    = "200" | "302" | "400" | "501" | extension-code
  extension-code = 3digit
  reason-phrase  = *TEXT


Answer 2:

从您的CGI脚本返回HTTP错误代码,你必须把它写入stdout ,如:

#include <stdio.h>

int main()
{
    printf("status: 400\n\n");

    return 0;
}

就在status: status-code\n\n是必要的。



文章来源: return http error code from CGI C module
标签: c http module cgi