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

推薦する

Navicat による MySQL パーティショニングの実践

MySQLのパーティショニングは、非常に大きなテーブルを管理するのに役立ちます。MySQLのパーティ...

Web データ ストレージ: Cookie、UserData、SessionStorage、WebSqlDatabase

クッキーこれはクライアント ブラウザの状態を保存するための標準的な方法です。Cookie はブラウザ...

MySQLのスロークエリの詳細な説明

MySQL操作情報のクエリ show status -- すべての MySQL 操作情報を表示します...

MySQLのMVCCマルチバージョン同時実行制御の実装

1 MVCCとは何かMVCC の正式名称は、マルチバージョン同時実行制御です。データベースへの同時ア...

VMware 仮想マシンのインストール Apple Mac OS の超詳細なチュートリアル

目次要約する仕事の都合で Apple の Mac OS に対応するソフトウェアをインストールする必要...

Docker を使ってゼロから SOLO 個人ブログを構築する方法

目次1. 環境整備2. Dockerをインストールする3. MySQLマスタースレーブデータベースを...

Postman 自動インターフェーステストの実践

目次背景説明GETリクエストの作成事前リクエストスクリプトで署名を作成するスクリプトは環境変数に書き...

jsを使用して中国語からピンインへの変換の完全な手順を実行します

jsを使用して、中国語をピンインに変換するパッケージを作成しました。倉庫のアドレスはpinyin-p...

Dockerコンテナアプリケーションログの表示方法

docker アタッチコマンドdocker attach [options] 容器実行中のコンテナに...

Web フロントエンドのパフォーマンス最適化の詳細説明: リソースのマージと圧縮

2つの目的のためのリソースの結合と圧縮httpリクエストの数を減らす要求されたリソースのサイズを縮小...

スライドによるページめくり効果とクリックイベント問題をモバイル端末上で実装する

前述のこの記事はとても短いです〜主な目的は、モバイル端末上のクリックと js イベントのメカニズムに...

ミニプログラムはミニプログラムクラウドを使用してWeChatの支払い機能を実装します

目次1. WeChat Payを開く1.1 アフィリエイト加盟店番号1.2 加盟店番号を追加する1....

CentOS 8 Zabbix 4.4 インストール ガイド

Zabbix サーバー環境プラットフォームZABBIX バージョン 4.4セントOS8 MySQL ...

MySQLクエリ時にフィールドにデフォルト値を割り当てる方法

必要フィールドをクエリする場合、フィールドに同じ値を指定する必要があります。この値はハードコードする...