HTTP
HTTPステータスコード
サーチ…
前書き
HTTPでは、ステータスコードは、以前に発行された要求の結果を示す機械可読のメカニズムです。 RFC 7231、秒から。 6 : "status-code要素は、要求を理解して満足させるための試みの結果を与える3桁の整数コードです。"
正式な文法は、コードが間に何もすることができるようになります000
と999
。しかし、からの範囲のみ100
への599
意味が割り当てられています。
備考
HTTP / 1.1では、レスポンスでクライアントが何をすべきかを要約するために、ステータス行(HTTPレスポンスの最初の行)に表示される数字のHTTPステータスコードがいくつか定義されています。
ステータスコードの最初の桁は応答のクラスを定義します。
-
1xx
情報 -
2xx
クライアント要求が成功しました -
3xx
Request redirected - 新しいリクエストなどの追加アクションが必要 -
4xx
クライアントエラー - 同じリクエストを繰り返さない -
5xx
サーバーエラー - 再試行する可能性があります
実際には、最も適切なステータスコードを選択することは必ずしも容易ではありません。
500内部サーバーエラー
HTTP 500内部サーバーエラーは、サーバーが予期せぬものに遭遇したという一般的なメッセージです。アプリケーション(または全体的なWebサーバー)は、要求の処理中にエラーが発生した場合に500を使用する必要があります。つまり、例外がスローされた場合、またはリソースの条件によって処理が完了しない場合があります。
ステータス行の例:
HTTP/1.1 500 Internal Server Error
404お探しのページが見つかりませんでした
「HTTP 404 Not Found」は、クライアントが要求したURIを使用してサーバーがパスを検出できなかったことを意味します。
HTTP/1.1 404 Not Found
ほとんどの場合、要求されたファイルは削除されましたが、ドキュメントルートの誤設定やアクセス権の不足などがあります(ただし、不足しているアクセス許可はHTTP 403禁止を頻繁にトリガーします)。
たとえば、MicrosoftのIISは、要求されたファイルが削除されたときに、ログファイルに404.0(0はサブ状態です)を書き込みます。しかし、着信要求が要求フィルタリング規則によってブロックされると、要求をブロックする規則に従ってログファイルに404.5-404.19を書き込みます。詳細なエラーコードの参照は、 マイクロソフトサポートにあります。
保護されたファイルへのアクセスを拒否する
クライアントが既存のアクセス制御のためにアクセスできないリソースを要求した場合は、403 Forbiddenを使用します。たとえば、管理者権限を持つユーザーのみがアクセスできる/admin
ルートがアプリケーションにある場合、通常のユーザーがページをリクエストすると、403を使用できます。
GET /admin HTTP/1.1
Host: example.com
HTTP/1.1 403 Forbidden
リクエストの成功
要求が成功したことを示すステータスコード200
HTTP応答を送信します。 HTTP応答ステータス行は次のようになります。
HTTP/1.1 200 OK
ステータステキストOK
は参考情報です。応答本体(メッセージペイロード)には、要求されたリソースの表現が含まれている必要があります。表現201がない場合は、コンテンツを使用しないでください。
キャッシュされたコンテンツに対する条件付き要求への応答
If-Modified-Since
とIf-None-Match
ヘッダーが含まれているクライアント要求に応答して、要求リソースが変更されていない場合は、サーバーから送信された304 Not Modified応答ステータスを送信します。
たとえば、Webページのクライアントリクエストにヘッダーが含まれているIf-Modified-Since: Fri, 22 Jul 2016 14:34:40 GMT
、それ以降ページが変更されていない場合は、 HTTP/1.1 304 Not Modified
ステータスラインで応答しHTTP/1.1 304 Not Modified
。
上位10のHTTPステータスコード
2xxの成功
- 200 OK - 正常なHTTP要求に対する標準的な応答。
- 201 Created - リクエストが完了し、新しいリソースが作成されました。
- 204 No Content - サーバーは要求を正常に処理しましたが、コンテンツは返されません。
3xxリダイレクション
- 304 Not Modified - 要求ヘッダー
If-Modified-Since
またはIf-None-Match
指定されたバージョン以降にリソースが変更されていないことを示します。
4xxクライアントエラー
- 400 Bad Request - サーバは、明らかなクライアントエラー(不正な形式のリクエスト構文、サイズが大きすぎる、無効なリクエストメッセージフレーミング、不正なリクエストルーティングなど)によりリクエストを処理できない、または処理しない。
- 401 Unauthorized - 403 Forbiddenに類似していますが、特に認証が必要で、失敗したか、まだ提供されていない場合に使用します。レスポンスには、要求されたリソースに適用可能なチャレンジを含む
WWW-Authenticate
ヘッダーフィールドが含まれている必要があります。 - 403禁止 - 要求は有効な要求でしたが、サーバーは応答を拒否しています。ユーザーはログインしている可能性がありますが、リソースに必要な権限はありません。
- 404 Not Found - 要求されたリソースは見つかりませんでしたが、将来利用可能になる可能性があります。クライアントによる後続の要求は許可されます。
- 409 Conflict - 複数の同時更新間の編集の競合など、要求の競合のために要求を処理できなかったことを示します。
5xxサーバーエラー
- 500内部サーバーエラー - 予期しない条件に遭遇し、さらに特定のメッセージが適切でない場合に出される一般的なエラーメッセージ。