본문

Tech
HTTPステータスコードのクリーンアップ

작성일 2019.08.07

blog_40_main.webp

WhaTapが提供するURL Monitoringは、Webサービスの障害を知らせるサービスです。Webサービスから返されるステータスコードが4xx、5xxで表示される場合、警告アラームを送信するようになっています。Webサービスから返されるステータスコードはHTTP STATUS CODEと呼ばれ、代表的なステータスコードには「404 Not Found」があります。

参考資料

ステータスコードは3桁の数字で構成されており、最初の桁は1から5まで提供されています。最初の桁が4と5の場合は、通常の状況ではないため、サイト管理者がすぐに知っておく必要がある情報です。

  • 1xx(情報) : 要求を受け取り、プロセスを続行します。
  • 2xx(成功) : 要求を成功裏に受け取り、認識し受け入れました。
  • 3xx (リダイレクト) : 要求を完了するために追加の作業処置が必要です。
  • 4xx(クライアントエラー):要求の文法が正しくないか、要求を処理できません。
  • 5xx(サーバーエラー):サーバーが明らかに有効な要求を満たすことができませんでした。

1XX: Information responses

ステータスコードが「1」で始まる場合は、サーバーが要求を受け取り、サーバーに接続されているクライアントがタスクを続行することを意味します。そのコードはHTTP 1.0ではサポートされていません。

100 Continue

進行中であることを意味する応答コードです。現在までの進行状況に問題はなく、クライアントが引き続き要求をしたり、すでに要求を完了した場合には無視してもよいことをお知らせします。

101 Switching Protocol

101は、クライアントによって送信されたアップグレード要求ヘッダに応答して送信される。

この応答コードは、クライアントから送信されたUpgrade要求ヘッダーへの応答に入り、サーバーがプロトコルを変更することを知らせます。このコードはWebsocketプロトコルの切り替え時に使用されます。

102 Processing(WebDAV)

この応答コードは、サーバーが要求を受け取り、それを処理していますが、まだ適切な応答を知らせることができないことを示します。

2XX: Successful responses

200 OK

要求が成功しました。 情報は要求に応じて返されます。

201 Created

要求が成功し、その結果、新しいリソースが作成されました。このレスポンスは通常、POST リクエストまたは一部の PUT リクエストの後に続きます。

202 Accepted

要求を受け取りましたが、それに応じて行動することはできません。 この応答は、要求処理の結果を後でHTTPに非同期応答を送信することについては明確には明記していません。これは、他のプロセスで処理またはサーバーが要求を処理している場合、またはバッチプロセスを実行している場合のために作成されました。

203 Non-Authoritative Information

このレスポンスコードは、返されたメタ情報セットがオリジンサーバーのものと一致しませんが、ローカルまたはサードパーティのコピーから収集されたことを意味します。これらの条件では、この応答ではなく200 OK応答が必ず優先されます。

204 No Content

リクエストに対して送信できるコンテンツはありませんが、ヘッダーは意味がある可能性があります。ユーザーエージェントは、リソースがキャッシュされたヘッダーを新しいものに更新できます。

205 Reset Content

この応答コードは、要求が完了した後にユーザーエージェントに、この要求を送信した文書ビューをリセットするように指示します。

206 Partial Content

このレスポンスコードは、クライアントが複数のストリームを分割ダウンロードしたい範囲ヘッダを送信したために使用されます。クライアントが引き継ぐことを試みると、Webサーバーはそれに対する応答コードとして「206 Partial Content」とともにRangeヘッダーに指定されているデータの一部(byte)から送信を開始します。

207 Multi-Status

マルチステータス応答は、複数のリソースが複数のステータスコードである状況が適切な場合に対応する情報を伝えます。このコードは WebDAV (Web Distributed Authoring and Vesioning) に使用されます。

208 Already Reported

Prostat (property と status の合成語) 応答属性として同じコレクションにバインドされた複数の内部メンバーを繰り返し列挙することを避けるために使用されます。このコードは WebDAV (Web Distributed Authoring and Vesioning) に使用されます。

226 IM Used ( HTTP Delta encoding )

サーバーはGET要求に対するリソースの義務を果たし、応答が1つ以上のインスタンス操作が現在のインスタンスに適用されたことを通知します。

3XX: Redirection messages

300 Multiple Choice

要求に対して1つ以上の応答が可能です。ユーザーのエージェントまたはユーザーは、そのうちの1つを選択する必要があります。 応答の1つを選択する方法の標準化された方法はありません。

301 Moved Permanently

この応答コードは、要求されたリソースのURIが変更されたことを意味します。新しいURIが応答でおそらく与えられます。

302 Found

この応答コードは、要求されたリソースのURIが一時的に変更されたことを意味します。新しく変更された URI は後で作成できます。したがって、クライアントは将来の要求も必ず同じURIにする必要があります。

303 See Other

クライアントが要求したリソースを別のURIからGET要求を介して取得する必要がある場合は、サーバーがクライアントに直接送信する応答です。

304 Not Modified

これはキャッシュを目的として使用されます。 これにより、クライアントは応答が変更されていないことを知らせるため、クライアントは応答のキャッシュされたバージョンを引き続き使用できます。

305 Use Proxy

以前のバージョンのHTTP技術仕様で定義されており、要求された応答は必ずプロキシを介して接続する必要があることを示しています。これは、プロキシのインバンド設定に対するセキュリティ上の心配によって消えています。

306 Unused

このレスポンスコードは使用されなくなり、現在は将来の使用のために予約されています。これはHTTP 1.1技術仕様以前のバージョンで使用されました。

307 Temporary Redirect

クライアントが要求したリソースが異なるURIにあり、以前の要求と同じメソッドを使用して要求する必要がある場合、サーバーはクライアントにこの応答を直接送信します。これは302 Found HTTPレスポンスコードと同じ意味を持ち、ユーザーエージェントが使用されているHTTPメソッドを変更しないでください。最初の要求にPOSTが使用されている場合は、2番目の要求もPOSTを使用する必要があります。

308 Permanent Redirect

これは、リソースが現在HTTPレスポンスヘッダーのLocation:に指定されている永久に異なるURIに配置されていることを意味します。 これは、301 Moved Permanently HTTPレスポンスコードと同じ意味を持ち、ユーザーエージェントがHTTPメソッドを変更しないようにする点だけが異なります。 最初の要求にPOSTが使用されている場合は、2番目の要求もPOSTを使用する必要があります。

4XX: Client error responses

400 Bad Request

この応答は、誤った文法のためにサーバーが要求して理解できないことを意味します。

401 Unauthorized

ただし、HTTP標準では「未承認(unauthorized)」を明確にしていますが、意味上、この応答は「非認証(unauthenticated)」を意味します。クライアントは要求された応答を受け取るために自分自身を認証する必要があります。

402 Payment Required

このレスポンスコードは、後で使用するために予約されています。 最初の目標は、デジタル決済システムで使用するために作成されましたが、現在使用されていません。

403 Forbidden

クライアントにコンテンツにアクセスする権利はありません。たとえば、彼らは未承認であり、サーバーは拒否のための適切な応答を送信します。401と異なる点は、サーバーがクライアントが誰であるかを知っています。

404 Not Found

サーバーは要求されたリソースを見つけることができません。ブラウザでは未知のURLを意味します。これは、APIのエンドポイントは適切ですが、リソース自体は存在しないことを意味できます。サーバーは、認証されていないクライアントからリソースを隠すために、この応答を403の代わりに送信することもできます。このレスポンスコードはウェブ上で繰り返し発生するので、最も有名かもしれません。

405 Method Not Allowed

要求されたメソッドはサーバーによって認識されていますが、削除されて使用できません。たとえば、任意のAPIからリソースを削除することを禁止できます。必須メソッドであるGETとHEADは削除できず、このエラーコードを返すことはできません。

406 Not Acceptable

この応答はサーバーが、サーバー主導コンテンツのネゴシエーションを実行した後、ユーザーエージェントによって決定された 規格に従ったいかなるコンテンツも見つからなかった場合、Webサーバーが送信します。

407 Proxy Authentication Required

これは401に似ていますが、プロキシによって完了された認証が必要です。

408 リクエストタイムアウト

この応答は、要求があった時間が古い接続に一部のサーバーによって送信され、ある時点で以前にクライアントからの要求がなかったとしても送信されます。これは、サーバーが未使用の接続を切断したいことを意味します。この回答は特定のブラウザでよく見られますが、Chrome、Firefox 27+、IE 9などのWebサーフィンを高速化するためにHTTPプレ接続メカニズムを使用するブラウザがあります。また、一部のサーバーはこのメッセージを送信せずに接続を切断することがあります。

409 Conflict

この応答は、要求が現在のサーバーの状態と競合したときに送信されます。

410 Gone

この応答は、要求されたコンテンツがサーバーから永久に削除され、配信できるアドレスも存在しない場合に送信されます。クライアントがキャッシュとリソースへのリンクを消去することを期待します。HTTP技術仕様は、このステータスコードが「一時的なプロモーションサービス」に使用されることを期待しています。 APIは、既知のリソースがこのステータスコードとともに削除されたことを強制してはいけません。

411 Length Required

サーバーが必要とするContent-Lengthヘッダーフィールドが定義されていない要求が入っているため、サーバーは要求を拒否します。

412 Precondition Failed

クライアントのヘッダーの前提条件は、サーバーの前提条件には適していません。

413 Payload Too Large

要求エンティティは、サーバーによって定義された制限よりも大きい。 サーバーは接続を切断するか、Retry-Afterヘッダーフィールドに返します。

414 URI Too Long

クライアントが要求したURIは、サーバーが処理しないようにした長さよりも長くなります。

415 Unsupported Media Type

要求されたメディアフォーマットはサーバーでサポートされていません。サーバーはその要求を拒否します。

416 Requested Range Not Satisfiable

Rangeヘッダーフィールドに要求された指定範囲を満たすことはできません。範囲がターゲットURIデータのサイズを超えている可能性があります。

417 Expectation Failed

この応答コードは、Expect 要求ヘッダーフィールドで要求された予想がこのサーバーでは適切ではないことを示します。

418 I'm a teapot

サーバーはコーヒーをティーポットに沸騰させることを拒否します。

421 Misdirected Request

サーバーに誘導された要求は応答を生成できません。これは、サーバーが要求URIに関連付けられたスキームと権限を構成して応答を生成できない場合に送信されます。

422 Unprocessable Entity (WebDAV)

リクエストはうまく行われましたが、文法エラーのためフォローできません。

423 Locked (WebDAV)

リソースにアクセスするのはロックされています。

424 Failed Dependency (WebDAV)

以前の要求が失敗したため、今の要求も失敗しました。

426 Upgrade Required

サーバーは今のプロトコルを使用して要求を処理することを拒否しましたが、クライアントが別のプロトコルにアップグレードをすると処理をするかもしれません。サーバーは、Upgradeヘッダーと必要なプロトコルを通知するために426応答に送信します。

428 Precondition Required

オリジンサーバーは要求が条件でなければなりません。クライアントがリソースをGETして、修正し、そしてPUTでサーバーに返す間、サードパーティがサーバーの状態を修正して発生する衝突である「アップデートの喪失」を防止するための目的です。

429 Too Many Requests

ユーザーが指定された時間に多すぎる要求を送信しました(”rate limiting”)。

431 Request Header Fields Too Large

要求されたヘッダーフィールドが大きすぎるため、サーバーは要求を処理しません。要求はサイズを小さくしてから再送信する必要があります。

451 Unavailable For Legal Reasons

ユーザーが要求したのは、政府によって検閲されたWebページなどの違法なリソースです。

5XX: Server error responses

500 Internal Server Error

Webサイトサーバーに問題があることを意味しますが、サーバーは正確な問題をより具体的に説明することはできません。

501 Not Implemented

サーバーが要求を実行するために必要な機能をサポートしていないことを示します。

502 Bad Gateway

サーバーがゲートウェイから誤った応答を受信したことを意味します。インターネット上のサーバーが他のサーバーから無効な応答を受信した場合に発生します。

503 Service Unavailable

サーバーが要求を処理する準備ができていません。一般的な原因は、メンテナンスのために停止しているか過負荷のサーバーです。この応答とともに、問題を説明するユーザーフレンドリーなページを送信する必要があることに注意してください。この応答は一時条件で使用する必要があり、Retry-After:HTTPヘッダーは可能であればサービスを回復する前に予想される時間を含める必要があります。Webマスターはまた、これらの一時的な条件応答をキャッシュしないようにするため、この応答と共に送信されるキャッシュ関連ヘッダーにも注意する必要があります。

504 Gateway Timeout

Webページを読み込んだり、ブラウザから別の要求を入力したりしているときに、あるサーバーがアクセスしている別のサーバーからタイムリーに応答を受け取らなかったことを意味します。このエラー応答は、サーバーがゲートウェイとして機能し、タイムリーに応答を受信できない場合に発生します。このエラーは、通常、インターネット上のサーバー間のネットワークエラー、または実際のサーバーの問題です。コンピュータ、デバイス、またはインターネット接続に問題ではない可能性があります。

505 HTTP Version Not Supported

サーバーでサポートされていないHTTPバージョンをクライアントが要求しました。ほとんどのWebブラウザは、Webサーバーが1.xバージョンのHTTPプロトコルをサポートしていると仮定しています。実際、1.0以下の非常に古いバージョンは、最近ではほとんど使用されていません。特に、最新バージョンのプロトコルよりもセキュリティとパフォーマンスが悪いからです。したがって、Webブラウザでこのエラーが表示される場合は、WebサーバーソフトウェアでサポートされているHTTPバージョンを確認してください。

506 Variant Also Negotiates

サーバーに内部構成エラーがある場合に発生します。要求のための透明なコンテンツネゴシエーションが循環参照につながります。

507 Insufficient Storage

選択した可変リソースは、透過的なサーバーに内部構成の障害がある場合に発生します。 コンテンツネゴシエーションに参加するように構成されているため、ネゴシエーション中に適切なエンドポイントではありません。

508 Loop Detected (WebDAV)

サーバーが要求の処理中に無限ループを検出した場合に発生します。

510 Not Extended

サーバーが要求を実行するには、要求に対する追加の拡張が必要です。

511 Network Authentication Required

511ステータスコードは、クライアントがネットワークアクセスを取得するために認証する必要があることを示します。

まとめ

HTTPステータスコードの詳細は、今後コード別にご説明します。WhaTap URL Monitoringを使用すると、サービスがエラーを意味するHTTPステータスコードをエクスポートするかどうかを確認できます。WhaTap URL Monitoringを使用してスマートなサービスオペレーティングシステムをお作りください。

WhaTap Monitoringを体験してみましょう。
難しかったモニタリングと分析が容易に実現できます。