1

私は C で書かれた CGI モジュールを持っており、このモジュールから HTTP エラー 400 を返したい場合があります。問題は、モジュールから HTTP エラーを返す方法がわからないことです。

私のモジュールの 'return(-1)' のように見え、500 内部サーバー エラーを返します。400などを返そうとしましたが、無駄です。「printf("Status:400");」も試してみました -1 を返す前に (ここで提案されているように: C++ CGI プログラムから 500 HTTP ステータスを返す方法 )、それは機能しませんでした。

これに関するアドバイスをいただければ幸いです。

編集: [解決済み] Python モジュール (この C CGI モジュールによって後で呼び出されます) から HTTP エラー コードを返すことができました。そのため、以下のコメントに記載されている提案を試すことができませんでした。しかし、助けてくれてありがとう。

4

2 に答える 2

4

HTTP エラー 400 を HTTP クライアントに返すには、次のように HTTP ステータス行を stdout に書き込む必要があります。

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

参照: https://www.rfc-editor.org/rfc/rfc3875

ステータス ヘッダー フィールドには、スクリプトによるリクエスト処理の成功レベルを示す 3 桁の整数結果コードが含まれます。

  Status         = "Status:" status-code SP reason-phrase NL
  status-code    = "200" | "302" | "400" | "501" | extension-code
  extension-code = 3digit
  reason-phrase  = *TEXT
于 2013-05-06T19:36:20.340 に答える