これは興味深い質問です。問題になる理由はないはずですが、いくつかの点を考慮に入れる必要があります。
- ヘッダーは、アプリケーションに固有である必要があります。今だけでなく、永遠に。接頭辞を付けていることを確認する必要があります
X-MyApplication-Foo: Bar
。これを行わないと、将来的に競合が発生する可能性があります。
- ファイアウォールは、未知のHTTPヘッダーのフィルタリングに(まれに)少し熱心になることがあります。これは問題にはならないはずですが、覚えておくべきことがあります。
- 古いブラウザは、最新のブラウザよりもヘッダーフィールドサイズの制限が小さいため、できるだけ多くのブラウザでテストする必要があります。
標準のHTTPエラーコードを使用できない理由はありますか?スタックトレースやその他の有用なデバッグ情報を提供したい場合があることは理解していますが、エラーが発生した場合は、通常の「結果」JSONデータではなく、エラー情報を含むJSONBLOBを返すだけではないでしょうか。HTTPエラーコードに基づいて違いを簡単に検出し、2つのケースを異なる方法で処理できます。
提案されたアプローチに私が懸念している理由は、ヘッダーがブラウザーの動作を変更または引き起こすために使用されているためです。ヘッダーはデータストレージメカニズムを目的としたものではありません。
擬似コードの例:
switch(httpResponseCode)
{
case 200:
parseResult(json);
break;
case 403:
parseForbidden(json);
break;
case 500:
parseServerError(json);
break;
default:
// bad response code, handle appropriately
}