REST および WCF サービスがあり、操作に基づいてカスタム ステータス コードを送信したいと考えています。
たとえば、検証に失敗した場合はHTTP 444を送信し、認証に失敗した場合はHTTP 455を送信します。
問題は、SOAP と REST Web サービスの両方でこれをどのように検証するかということです。
WCF サービス (SOAP を使用) から HTTP 400/500 を送信すると、クライアントで例外がスローされ、ステータス コードが表示されるため、クライアントではエラー コードはどのように動作しますか?
新しいカスタム ステータス コードを送信すると、クライアントはこれをどのように処理するのでしょうか?
ベストアンサー1
はい、クラスを尊重する限り、つまり成功の場合は 2xx、クライアント エラーの場合は 4xx などです。したがって、独自のアプリケーションのエラー条件に対して、カスタム 4XX エラー コード (割り当てられていないものが望ましい) を返すことができます。
[RFC 2616][1]から引用すると:
「HTTP ステータス コードは拡張可能です。HTTP アプリケーションは、登録されているすべてのステータス コードの意味を理解する必要はありませんが、理解することが望ましいことは明らかです。ただし、アプリケーションは、最初の数字で示されるステータス コードのクラスを理解し、認識されない応答をそのクラスの x00 ステータス コードと同等として処理する必要があります。ただし、認識されない応答はキャッシュしてはいけません。たとえば、クライアントが認識されないステータス コード 431 を受信した場合、クライアントは要求に何らかの問題があると安全に想定し、400 ステータス コードを受信したかのように応答を処理できます。」
クラス'
1xx: 情報 - リクエストを受信しました。処理を続行します
2xx: 成功 - アクションが正常に受信され、理解され、受け入れられました
3xx: リダイレクト - リクエストを完了するには、さらにアクションを実行する必要があります
4xx: クライアント エラー - リクエストに不正な構文が含まれているか、リクエストを処理できません
5xx: サーバーエラー - サーバーは明らかに有効なリクエストを処理できませんでした [1]: