HTTP はアプリケーション層プロトコルですが、HTTP/2 バージョンは 2015 年にリリースされ、主要な Web ブラウザーと Web サーバーでサポートされています。
その主な機能は次のように要約できます:
クライアント/サーバー モードをサポートします。
シンプルかつ高速: クライアントがサーバーにサービスを要求するときは、要求メソッドとパスを送信するだけで済みます。 HTTP プロトコルは単純であるため、HTTP サーバーのプログラム サイズは小さく、通信速度は非常に高速です。
柔軟性: HTTP では、あらゆる種類のデータ オブジェクトの送信が可能です。転送されるタイプは Content-Type によってマークされます。
接続なし: 接続なしの意味は、各接続が 1 つのリクエストのみを処理するように制限することです。サーバーはクライアントの要求を処理し、クライアントの応答を受信した後、接続を切断します。この方法により、送信時間が節約されます。
ステートレス: HTTP プロトコルはステートレス プロトコルです。ステートレスとは、プロトコルにトランザクション処理のためのメモリ機能がないことを意味します。ステータスがないということは、後続の処理で以前の情報が必要な場合にその情報を再送信する必要があることを意味し、その結果、接続ごとに転送されるデータ量が増加する可能性があります。一方、事前の情報が必要ない場合、サーバーはより速く応答します。この問題を解決するために、Web プログラムには状態を維持するための Cookie メカニズムが導入されています。
また、HTTPリクエストメッセージとレスポンスメッセージは、スタートライン(リクエストメッセージの場合はスタートラインがリクエストライン、レスポンスメッセージの場合はスタートラインがステータスライン)、メッセージから構成されます。ヘッダー (オプション)、空行 (CRLF のみの行) とメッセージ本文 (オプション) で構成されます。
ソフトウェア テスターとして、一部のサーバーから返される HTTP ステータスの意味を理解することは不可欠です。これらのステータス コードを理解することによってのみ、仕事で役に立ちます。HTTP ステータスを包括的に見てみましょう。コード:
応答ステータス コード
ステータス コードは 3 桁で構成され、最初の桁は応答カテゴリを定義し、5 つの値が可能です。
1xx: 指示情報 - リクエストが受信され、処理が続行されていることを示します。
2xx: 成功 -- リクエストが正常に受信され、理解され、受け入れられたことを示します。
3xx: リダイレクト -- リクエストを完了するには、さらに操作を実行する必要があります。
4xx: クライアント エラー -- リクエストに構文エラーがあるか、リクエストを実行できません。
5xx: サーバー側エラー -- サーバーは正当なリクエストを実行できませんでした。
一般的なステータス コード:
1xx - 情報プロンプト
これらのステータス コードは、一時的な応答を示します。クライアントは、通常の応答を受信する前に、1 つ以上の 1xx 応答を受信できるように準備する必要があります。
· 100 - 続行 最初のリクエストは受け入れられ、クライアントはリクエストの残りの送信を続行する必要があります。
· 101 - プロトコルの切り替え サーバーはクライアントの要求に従い、別のプロトコルに変換します。
2xx - 成功
このタイプのステータス コードは、サーバーがクライアント要求を正常に受け入れたことを示します。
· 200 - OK すべて問題ありません。GET リクエストと POST リクエストに対する応答ドキュメントが続きます。
· 201 - 作成済み サーバーがドキュメントを作成し、Location ヘッダーにその URL が示されます。
· 202 - 受理されました リクエストは受理されましたが、処理はまだ完了していません。
· 203 - 非権限情報 ドキュメントは正常に返されましたが、ドキュメントのコピーである非権限情報が使用されているため、一部の応答ヘッダーが正しくない可能性があります。
· 204 - コンテンツがありません 新しいドキュメントはありません。ブラウザは元のドキュメントを表示し続けます。このステータス コードは、ユーザーがページを定期的に更新し、サーブレットがユーザーのドキュメントが十分に最新であると判断できる場合に役立ちます。
· 205 - コンテンツのリセット 新しいコンテンツはありませんが、ブラウザは表示するコンテンツをリセットする必要があります。ブラウザにフォーム入力コンテンツを強制的にクリアさせるために使用されます。
· 206 - 部分的なコンテンツ クライアントが Range ヘッダーを含む GET リクエスト (チャンクリクエスト) を送信し、サーバーがそれを完了しました。
3xx - リダイレクト
クライアント ブラウザは、リクエストを満たすために追加のアクションを実行する必要があります。たとえば、ブラウザはサーバー上の別のページをリクエストしたり、プロキシ サーバー経由でリクエストを繰り返したりする必要がある場合があります。
· 300 - 複数の選択肢 クライアントが要求したドキュメントは複数の場所で見つかる可能性があり、これらの場所は返されるドキュメントにリストされます。サーバーがプリファレンスを提案したい場合は、Location 応答ヘッダーでそれを示す必要があります。
· 301 - 永久に移動されました クライアントによって要求されたドキュメントは別の場所にあります。新しい URL は Location ヘッダーに指定されており、ブラウザは自動的に新しい URL にアクセスする必要があります。
· 302 - 見つかりました 301 と同様ですが、新しい URL は永続的な URL ではなく、一時的な置き換えと見なす必要があります。 HTTP 1.0 の対応するステータス メッセージは「一時的に移動されました」であることに注意してください。このステータス コードが発生すると、ブラウザは新しい URL に自動的にアクセスできるため、便利なステータス コードです。このステータス コードは 301 と同じ意味で使用できる場合があることに注意してください。 301 を返すサーバーもあれば、302 を返すサーバーもあります。厳密に言えば、元のリクエストが GET だった場合にのみ、ブラウザが自動的にリダイレクトすると想定することしかできません。 307を参照してください。
· 303 - その他を参照 301/302 と同様ですが、元のリクエストが POST の場合、Location ヘッダーで指定されたリダイレクト ターゲット ドキュメントを GET 経由で抽出する必要がある点が異なります。
· 304 - 未変更 クライアントはバッファリングされたドキュメントを持っており、条件付きリクエストを発行しました (通常、クライアントが指定された日付より新しいドキュメントのみを必要とすることを示す If-Modified-Since ヘッダーを提供します)。サーバーは、バッファされた元のドキュメントが引き続き使用できることをクライアントに伝えます。
· 305 - プロキシの使用 クライアントによって要求されたドキュメントは、Location ヘッダー (HTTP 1.1 の新機能) で指定されたプロキシ サーバーを通じて取得される必要があります。
· 307 - 一時リダイレクトは 302 (見つかった) と同じです。多くのブラウザは、元のリクエストが POST であったとしても、実際には POST リクエストに対する応答が 303 の場合にのみリダイレクトできるにもかかわらず、誤って 302 レスポンスでリダイレクトします。このため、HTTP 1.1 では、複数のステータス コードをより明確に区別するために 307 が追加されました。303 応答が発生すると、ブラウザはリダイレクトされた GET リクエストと POST リクエストに従うことができます。307 応答の場合、ブラウザは GET リクエストのリダイレクトにのみ従うことができます。
4xx - クライアント エラー
これらのステータス コードは、リクエストに何らかの問題が発生し、サーバーがリクエストを処理できなくなった可能性があることを示します。
· 400 - 不正なリクエスト サーバーはリクエストの構文を理解できません。
· 401 - 未承認 リクエストには認証が必要です。ログイン後、サーバーはこの応答をページに返す場合があります。応答には WWW-Authenticate ヘッダーが含まれており、ブラウザーはそれに応じてユーザー名/パスワードのダイアログ ボックスを表示し、適切な Authorization ヘッダーを入力した後、再度要求を実行します。 IIS では、エラーのより具体的な原因を示すさまざまな 401 エラーが定義されています。次の特定のエラー コードはブラウザには表示されますが、IIS ログには表示されません:
· 401.1 - ログインに失敗しました。
· 401.2 - サーバー設定によりログインが失敗しました。
· 401.3 - リソースに対する ACL 制限により許可されません。
· 401.4 - フィルターの承認に失敗しました。
· 401.5 - ISAPI/CGI アプリケーションの認証に失敗しました。
· 401.7 – Web サーバー上の URL 承認ポリシーによってアクセスが拒否されました。このエラー コードは IIS 6.0 に固有です。
· 403 - 禁止 サーバーはリクエストを拒否しました。通常、サーバー上のファイルまたはディレクトリのアクセス許可設定が原因で発生します。アクセス禁止: IIS では、エラーのより具体的な原因を示すさまざまな 403 エラーが定義されています。
· 403.1 - 実行アクセスが禁止されています。
· 403.2 - 読み取りアクセスは禁止されています。
· 403.3 - 書き込みアクセスは禁止されています。
· 403.4 - SSL が必要です。
· 403.5 - SSL 128 が必要です。
· 403.6 - IP アドレスが拒否されました。
· 403.7 - クライアント証明書が必要です。
· 403.8 - サイトへのアクセスが拒否されました。
· 403.9 - ユーザーが多すぎます。
· 403.10 - 構成が無効です。
· 403.11 - パスワードの変更。
· 403.12 - マッピング テーブルへのアクセスが拒否されました。
· 403.13 - クライアント証明書が取り消されました。
· 403.14 - ディレクトリのリストが拒否されました。
· 403.15 - クライアントのアクセス許可を超えました。
· 403.16 - クライアント証明書が信頼されていないか、無効です。
· 403.17 - クライアント証明書の有効期限が切れているか、まだ有効ではありません。
· 403.18 - 要求された URL は現在のアプリケーション プールでは実行できません。このエラー コードは IIS 6.0 に固有です。
· 403.19 - このアプリケーション プール内のクライアントに対して CGI を実行できません。このエラー コードは IIS 6.0 に固有です。
· 403.20 - パスポートのログインに失敗しました。このエラー コードは IIS 6.0 に固有です。
· 404 - 見つかりません サーバーは要求された Web ページを見つけることができません。たとえば、リクエストがサーバー上に存在しないページに対するものである場合、サーバーは通常、このコードを返します。
· 404.0 - (なし) – ファイルまたはディレクトリが見つかりません。
· 404.1 - 要求されたポートでは Web サイトにアクセスできません。
· 404.2 - リクエストは Web サービス拡張機能のロック ポリシーによってブロックされています。
· 404.3 - このリクエストは MIME マッピング ポリシーによってブロックされています。
· 405 - メソッドは許可されていません リクエスト メソッド (GET、POST、HEAD、DELETE、PUT、TRACE など) は指定されたリソースに適用できず、このページへのアクセスに使用される HTTP 動詞は無効です許可 (メソッドは許可ではありません)
· 406 - 受け入れられません 指定されたリソースは見つかりましたが、その MIME タイプは、クライアントが Accpet ヘッダーで指定したものと互換性がありません。クライアントのブラウザは受け入れません。リクエストされたページの MIME タイプ。
· 407 - プロキシ認証が必要 このステータス コードは 401 (未承認) に似ていますが、要求者が承認にプロキシを使用する必要があることを指定します。サーバーがこの応答を返す場合、サーバーはリクエスターが使用するプロキシも示します。
· 408 - リクエスト タイムアウト クライアントは、サーバーによって許可された待機時間内にリクエストを発行しませんでした。クライアントは後で同じリクエストを繰り返すことができます。
· 409 - 競合 サーバーはリクエストの完了中に競合を検出しました。サーバーは、応答内で発生した競合に関する情報を含める必要があります。サーバーは、前のリクエストと競合する PUT リクエストに応答するときにこのコードを返し、2 つのリクエスト間の相違点のリストを提供することがあります。
· 410 - なくなっています 要求されたドキュメントはもう利用できず、サーバーはどのアドレスにリダイレクトすればよいのかわかりません。 404 との違いは、407 を返すのはドキュメントが指定された場所から永久に離れたことを意味するのに対し、404 はドキュメントが不明な理由で利用できないことを意味することです。
· 411 - Length Required (有効な長さが必要) クライアントが Content-Length ヘッダーを送信しない限り、サーバーは無効な Content-Length ヘッダー フィールドを含むリクエストを受け入れません。
· 412 - 前提条件が失敗しました リクエスト ヘッダーで指定されたいくつかの前提条件が失敗しました。
· 413 – リクエスト エンティティが大きすぎます ターゲット ドキュメントがサーバーが現在処理できるサイズを超えています。サーバーが後でリクエストを処理できると判断した場合は、Retry-After ヘッダーを提供する必要があります。
· 414 - リクエスト URI が長すぎます URI が長すぎます。
· 415 – サポートされていないメディア タイプです。
· 416 – 要求された範囲が満たされません サーバーは、リクエスト内でクライアントによって指定された Range ヘッダーを満たすことができません。
·417 – 実行に失敗しました。
· 423 – ロック エラー。
5xx - サーバー エラー
これらのステータス コードは、サーバーがリクエストを処理しようとしたときに内部エラーが発生したことを示します。これらのエラーは、リクエスト内のエラーではなく、サーバー自体のエラーである可能性があります。
· 500 - 内部サーバー エラー サーバーでエラーが発生し、リクエストを完了できませんでした。
· 500.12 - アプリケーションは Web サーバー上で再起動中でビジー状態です。
· 500.13 - Web サーバーがビジー状態です。
· 500.15 - Global.asa への直接リクエストは許可されません。
· 500.16 – UNC 認証資格情報が正しくありません。このエラー コードは IIS 6.0 に固有です。
· 500.18 – URL 認証ストアを開けません。このエラー コードは IIS 6.0 に固有です。
· 500.100 - 内部 ASP エラー。
· 501 - 未実装 サーバーにはリクエストを完了する機能がありません。たとえば、リクエスト メソッドがサーバーによって認識されない場合、サーバーはこのコードを返すことがあります。
· 502 - 不正なゲートウェイ ゲートウェイまたはプロキシとして機能するサーバーが、上流サーバーから無効な応答を受信しました。
· 502.1 - CGI アプリケーションがタイムアウトしました。
· 502.2 - CGI アプリケーション エラー。
· 503 - サービスを利用できません (過負荷またはメンテナンスのためのダウンタイムのため) サーバーは現在利用できません。多くの場合、これは一時的な状態です。
· 504 - ゲートウェイ タイムアウト ゲートウェイまたはプロキシとして機能するサーバーが、上流サーバーからの要求を時間内に受信しませんでした。
· 505 - HTTP バージョンがサポートされていません サーバーは、リクエストで使用されている HTTP プロトコルのバージョンをサポートしていません。
以上がHTTP レスポンスのステータス コードとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。