サーバーから返される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のフロントエンドページングとバックエンドページングを実装する方法を説明します。

推薦する

CSS3 のボックス サイズ設定 (コンテンツ ボックスとボーダー ボックス) の詳細な説明

CSS3 のボックス サイズ設定 (content-box と border-box) CSS3 の...

XHTML 入門チュートリアル: XHTML とは何ですか?

HTMLとは何ですか?簡単に言えば、HTML は Web ページを作成するために使用されます。とて...

ウェブページ作成に役立つコード

<br />ホームページの右側にあるスクロールバーを削除するにはどうすればよいですか? ...

Vue コンポーネント化の一般的な方法: コンポーネント値の転送と通信

関連する知識ポイント親コンポーネントから子コンポーネントに値を渡す子コンポーネントから親コンポーネン...

CSS を使用して、画像に 3D の凸型と凹型のエフェクト (フレーム外に凸型、またはフレーム内に凹型) を実現します。

Ⅰ. 問題の説明: CSS を使用して画像の 3D 凸凹効果を実現します。 Ⅱ実施手順は以下のとお...

航空機戦争ゲームを実装するためのネイティブJS

この記事の例では、参考のために航空機戦争ゲームを実装するためのJSの具体的なコードを共有しています。...

レアタグフィールドセットと凡例の使用方法の詳細な説明

<fieldset>と<legend>については、ほとんどの人はおそらく馴染...

HTML テーブルタグチュートリアル (46): テーブルフッタータグ

<tfoot> タグは、テーブル フッターのスタイルを定義するために使用されます。基本構...

Docker を使用して ELK ログ システムを構築する例

以下のインストールではすべて、インストール ルート ディレクトリとして ~/ ディレクトリが使用され...

ul リスト タグ デザイン ウェブ ページ 複数列レイアウト

数日前、CSS で 3 列レイアウトを書いていたときに、突然この方法を思いつきました。このアイデアは...

Docker Secretの管理と使用の詳細な説明

1. Docker Secretとは1. シナリオ表示MySQL サービスなど、一部のサービスではパ...

MySQL サーバーの接続、切断、および cmd 操作

mysql コマンドを使用して MySQL サーバーに接続します。 MySQL サーバーが起動したら...

クリエイティブな会社概要ウェブページデザイン

ユニークな「About」ページ自分を他の人たちと差別化する素晴らしい方法は、本当にユニークな自己紹介...

MySQL データ型 DECIMAL の詳細な分析

序文:金額の保存など、小数点数を保存し、精度要件がある場合、通常は DECIMAL フィールド タイ...

携帯電話向けウェブページ作成のヒント

現在では多くの人がスマートフォンを使用していることを考慮すると、モバイル Web ページの書き方は、...