サーバーから返される14の一般的なHTTPステータスコードの詳細な説明

サーバーから返される14の一般的なHTTPステータスコードの詳細な説明

HTTP ステータス コード

ステータス コードは 3 桁の数字と理由フレーズ (最も一般的なもの: 200 OK) で構成されます。最初の桁は応答カテゴリを示し、1 から 5 までの 5 つのカテゴリに分かれています。

追加: 実際、私は情報を調べ、6で始まる600の解析不可能な応答ヘッダーもあることを発見しました

サーバーがレスポンス ヘッダーを返さず、エンティティ コンテンツのみが返されたことを示します。これはサーバー エラー ステータス コードと見なすこともできますが、決して一般的ではありません。

ステータスコード回答カテゴリー理由フレーズ
1XX情報ステータスコードサーバーはリクエストを処理しています
2XX成功ステータスコードリクエストは正常に処理されました
3XXリダイレクトステータスコードリクエストを完了するには追加のアクションが必要です
4XXクライアント エラー ステータス コードクライアントの理由により、サーバーは要求を処理できません。
5XXサーバーエラーステータスコードサーバーはリクエストの処理中にエラーが発生しました。

ステータスコード応答カテゴリの定義に従う必要があり、サーバーがその後の2つの数字を自分で作成しても問題はありません。

RFC2616 (HTTP プロトコル標準を指定するために使用されるドキュメント) では 40 種類を超える HTTP プロトコルが定義されており、拡張を加えるとその数は 60 に達することがあります。

しかし、よく使われるのは14個程度しかありません。ここでは代表的な14個のHTTPステータスコードについて説明したいと思います。

2XX 成功

200 大丈夫です

これは、リクエストがサーバーによって正常に処理されたことを示す最も一般的なステータス コードです。このステータス コードで返される情報は、リクエスト メソッドに関連しています。たとえば、GET リクエストの場合、要求されたリソースは応答エンティティとして返されますが、HEAD リクエストの場合、メッセージ エンティティは返されず、メッセージ ヘッダーのみが返されるため、情報は応答メッセージ ヘッダーにのみ存在します。

204 コンテンツなし

リクエストは正常に処理されたが、コンテンツが返されない(返されるコンテンツがないはず)ことを示します。つまり、返された応答メッセージにメッセージ エンティティがありません(実際には、メッセージ エンティティのボディ部分はありません)。ブラウザがサーバーにリクエストを送信して 204 を受信すると、ブラウザ ページは更新されません。これは通常、クライアントのみがサーバーに情報を送信し、サーバーがクライアントに情報を返す必要がない場合に使用されます。

206 部分的なコンテンツ

サーバーがGETリクエストの一部を完了したことを示します(クライアントが範囲リクエストを行った)。応答メッセージにはContent-Rangeで指定された範囲のエンティティコンテンツが含まれています。

3XX リダイレクト

301 永久に移動

永続的なリダイレクトとは、要求されたリソースが別の場所に永続的に移動されたこと、つまりリソー​​スに新しい URI が割り当てられたことを意味します。新しい URI は、応答メッセージの Location ヘッダー フィールドで示される必要があります。HEAD 要求でない限り、応答エンティティには新しい URI へのハイパーリンクと簡単な説明が含まれている必要があります。

302 件見つかりました

一時的なリダイレクトとは、要求されたリソースが一時的に別の場所に移動されたことを意味します。要求されたリソースは一時的に新しい URI に割り当てられます。これは 301 と非常に似ていますが、リソースが一時的に移動され、将来変更される可能性がある点が異なります。同様に、新しい一時的な URI は、応答メッセージの Location ヘッダー フィールドで示される必要があります。HEAD 要求でない限り、応答エンティティには新しい URI へのハイパーリンクと簡単な説明が含まれている必要があります。

303 その他を見る

要求されたリソースに別の URI があり、GET を使用して取得する必要があることを示します。303 の機能は 302 と同じですが、303 ではクライアントが GET を使用してアクセスする必要があることを指定します。(HTTP/1.1 より前の多くのブラウザーは 303 を理解できませんが、すべてのブラウザーは 302 を 303 として扱い、GET を使用して新しい URI を要求します。)

304 変更されていません

クライアントが条件付きリクエスト (GET メソッド リクエスト メッセージ内の IF...) を送信したときに、条件が満たされず、レスポンス本文なしで 304 レスポンスが返されることを示します。304 は 3XX に分類されますが、リダイレクトとは関係ありません。

307 一時リダイレクト

一時的なリダイレクトは 302 と同じ意味です。302 標準では POST を GET に変更することは禁止されていますが、誰もそれに耳を傾けません。307 は標準に従い、POST から GET に変更されることはありませんが、応答の動作はブラウザによって異なる場合があります。

4XX クライアント エラー

400 不正なリクエスト

リクエストメッセージに構文エラーまたはパラメータエラーがあり、サーバーがそれを理解できないため、サーバーはこのリクエストを再度送信すべきではなく、リクエストの内容を変更して再度送信する必要があることを示します。

401 権限がありません

送信されたリクエストに HTTP 認証情報が必要であるか、または認証が失敗したことを示します。返される 401 応答には、ユーザー情報を照会するために、要求されたリソースに適用可能な WWW-Authenticate ヘッダーが含まれている必要があります。ブラウザが最初に 401 を受信すると、認証ウィンドウがポップアップ表示されます。

403 禁止

要求されたリソースへのアクセスがサーバーによって拒否されたことを示します。サーバーはこれを説明する場合と説明しない場合があります。説明する必要がある場合は、応答エンティティの本文に理由を記述できます。たとえば、リソースにアクセスする権限がない可能性があります。

404 見つかりません

これは、サーバーが要求したリソースを見つけられないことを意味します。サーバーがリソースを提供したくないために、リソースが見つからないと嘘をついている可能性もあります (⊙ˍ⊙)。ほとんどのサーバーは、このステータス コードをこのように使用します。

5XX サーバー エラー

500 内部サーバーエラー

これは、リクエストの実行時にサーバーがエラーを起こしたことを意味します。Web アプリケーションのバグや一時的な障害の可能性がありますが、サーバーのソース コードのバグである可能性の方が高いです...

503 サービスは利用できません

サーバーが過負荷またはメンテナンスのためにダウンしており、リクエストを処理できないことを示します。サーバーが処理にかかる時間を把握している場合は、Retry-After ヘッダー フィールドを書き込んで返します。

要約する

返されるステータスコードとステータスが矛盾している可能性があります。たとえば、Webアプリケーションの内部エラーなどですが、それでも200 OKが返されます。

200 大丈夫です

リクエストは正常に処理されました。

204 コンテンツなし

リクエストは正常に処理されましたが、エンティティ本体は返されませんでした。

206 部分的なコンテンツ

GET範囲リクエストが正常に処理されました

301 永久に移動

永続的なリダイレクト。リソースには新しいURIが永続的に割り当てられます。

302 件見つかりました

一時的なリダイレクト。リソースには一時的に新しい URI が割り当てられています。

303 その他を見る

一時的なリダイレクト。GET を使用してターゲットを取得することを想定しています。

304 変更されていません

送信された条件付きリクエストは満たされませんでした

307 一時リダイレクト

一時的なリダイレクト、POSTはGETになりません

400 不正なリクエスト

要求メッセージの構文またはパラメータが正しくありません。

401 権限がありません

HTTP認証が必要か失敗しました

403 禁止

要求されたリソースは拒否されました

404 見つかりません

要求されたリソースが見つかりません (サーバーが理由なく拒否しました)

500 内部サーバーエラー

サーバー障害またはWebアプリケーション障害

503 サービスは利用できません

サーバーが過負荷状態またはメンテナンスのためダウンしている

上記がこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してコミュニケーションを取ることができます。

<<:  CSSでemを開く正しい方法の詳細な説明

>>:  この記事では、Vueのフロントエンドページングとバックエンドページングを実装する方法を説明します。

推薦する

独自の Docker イメージを作成して Dockerhub にアップロードする方法

1. まず、自分のdockerhubアカウントを登録します。登録アドレス: https://hub....

MySQLのスローログの開き方と保存形式の詳細な分析

開発プロジェクトでは、MySQL のスロークエリログを通じて効率の問題のある SQL を監視できます...

9999px に別れを告げる新しい CSS 画像置換テクニック (背景表示と画面外へのテキストの移動)

-9999 ピクセルの画像置換技術は、ここ 10 年近く人気があります。テキスト要素を画像に置き換え...

インターネット接続なしでLinux Centos7にアプリケーションをインストールする方法の詳細な説明

1. 前の章では、プログラムを yum リポジトリに直接インストールできることを学びましたが、そのた...

CSSテキストシャドウの徐々にぼやける効果の実装

テキストシャドウテキストに影を追加します。テキストとテキスト装飾に複数のシャドウを追加することができ...

ubuntu16.04でNFSサービスを構築する方法

NFS の紹介NFS (ネットワーク ファイル システム) は、FreeBSD でサポートされている...

MySQL 8.0.13 のダウンロードとインストールのチュートリアル(画像とテキスト付き)

MySQL は最もよく使用されるデータベースです。詳しく知るには、コンピュータにインストールする必...

MySQLにおけるビューの作成(CREATE VIEW)と使用制限の詳しい説明

この記事では、例を使用して、MySQL ビューの作成 (CREATE VIEW) と使用上の制限につ...

スクラッチ宝くじの例を実現する JavaScript キャンバス

この記事では、スクラッチ効果を実現するためのJavaScriptキャンバスの具体的なコードを参考まで...

MySQL ページング中にオフセットが大きすぎる場合の SQL 最適化の経験の共有

問題を見つけるコンテンツをリストで表示すると、リスト内のコンテンツの数は多いかもしれませんが、ユーザ...

Docker5フル機能の港湾倉庫構築プロセス

Harbor は、Docker イメージを保存および配布するためのエンタープライズ レベルのレジスト...

Linux でスレッドを作成するための pthread_create の具体的な使用法

pthread_create関数機能紹介pthread_createはUNIX環境のスレッド作成関数...

仕事の効率を上げるJS略語スキル20選

目次複数の変数を同時に宣言する場合は、1 行に短縮できます。分割代入は複数の変数に同時に値を割り当て...

Nginx ログのカスタマイズとログ バッファの有効化の詳細な説明

序文ウェブサイトのアクセス元をカウントしたい場合は、PHP を使用して情報を取得してデータベースに記...

ウェブページ作成によく使われる英語フォント

アリアルArial は、多くの Microsoft アプリケーションとともに配布されるサンセリフ T...