サーバー上のリソースを移動 |
|
上記の拡張メソッドはWebDAV HTTP拡張で定義されている拡張メソッドです。すべての拡張メソッドを理解したり適用したりできるわけではないため、エンドツーエンドの 動作 を壊さない限り、拡張メソッドを許容することが最善であることに注意してください。ダウンストリーム サーバーが壊れている可能性がある場合は、501 Not Implemented を渡して応答します。規則は次のとおりです: 「送信されるコンテンツについては厳しい要件、受信されるコンテンツについては緩やかな要件」。
4. ステータス コード
目的は、クライアントがトランザクション処理結果を理解しやすくすることであり、5 つのカテゴリに分類され、5 つのカテゴリの各ステータス コードには HTTP/1.1 で推奨される理由フレーズが含まれています。
1. 情報ステータス コード 100~199
HTTP/1.1 で導入されましたが、議論と制限があります。その主な内容は次のとおりです。
ステータス コード |
理由フレーズ |
意味 |
100 |
Continue |
説明 リクエストの最初の部分が受信され、クライアントは続行するように求められます。このステータス コードを送信した後、サーバーはリクエストを受信してから応答する必要があります。 |
101 |
プロトコルの切り替えは、サーバーがクライアントの仕様に従って、Update ヘッダーにリストされているプロトコルにプロトコルを切り替えていることを示します |
|
ここで、ステータスコード 100 について説明する必要があります。対象とするシナリオは次のとおりです。クライアントはエンティティをサーバーに送信する必要がありますが、送信する前にサーバーがエンティティを受け入れるかどうかを確認する必要があります。そして、クライアント、サーバー、プロキシの間で次のように通信します:
クライアントと 100 ステータス コード
クライアントは、値 100Continue を含む Expect リクエスト ヘッダーを送信できるため、エンティティ応答を送信する前に 100Continue を待つことができます。これは、大きすぎて処理できないエンティティがサーバーに送信されることを避けるために使用されます。待機がタイムアウトした場合、クライアントは予期しない応答に備えてエンティティを直接送信する必要があることに注意してください。
サーバーと 100 ステータス コード
サーバーが値 100Continue の Expect ヘッダーを持つリクエストを受信すると、100Continue またはその他のエラー ステータス コードで応答する必要があります。ただし、クライアントが要求しなかった場合、サーバーはこの応答を送信すべきではありません。
100Continue を送信する前にサーバーがいくつかのエンティティを受信した場合、つまりクライアントがタイムアウトした場合、サーバーは 100 ステータス コードを送信する必要はありませんが、リクエストを読み取った後、最終ステータス コード (100ステータスコードはスキップできます)。
エージェントと 100 ステータス コード
エージェントが 100Continue の Expect リクエストを受信した場合、エージェントが実行できることは次の状況に分けられます:
ネクスト ホップ サーバーが HTTP/1.1 互換であることがわかっている (または互換している)わかりません)、ネクストホップサーバーが HTTP/1.1 とのみ互換性を持つまで、Except ヘッダーは下向きに転送されます
。その後、417Exception Failed エラーで応答する必要があります (または、最初にクライアントに 100Continue を返します)。その後、リクエストをサーバーに転送するときに、Except ヘッダーを削除します)。
HTTP/1.0 以前のバージョンと互換性のあるクライアントを表すプロキシは、Except ヘッダーと 100Continue 値をリクエストに含めることができますが、ステータス コードをクライアントに転送することはできません。
そのため、プロキシには、ネクスト ホップ サーバーとそのバージョン情報を維持するという利点があります。つまり、100Continue の予想されるリクエストの処理が向上します。
2. 成功ステータスコード 200~299
成功したリクエストにはさまざまな種類があるため、以下に成功を示すさまざまなステータスコードがあります。
ステータスコード |
理由フレーズ |
意味 |
200 |
OK |
リクエストはOKです。エンティティの本体部分にはリクエストされたリソースが含まれています。 |
201 |
Created |
サーバーオブジェクトを作成するリクエストに対する応答。エンティティの主要部分には、作成されたリソースのさまざまな referencesURL が含まれている必要があり、Location ヘッダーには最も具体的な参照が含まれています。 |
202 |
Accepeded |
リクエストは受け入れられましたが、実行されなかった場合でも、リクエストの実行は保証されません。サーバーは、エンティティの本文にリクエストのステータスの説明と、リクエストが完了するまでにかかる時間の推定 (または、この情報を取得できる場所へのポインタ) を含めるべきです(SHOULD)。 |
203 |
非権限情報 |
エンティティヘッダーに含まれる情報は、(サーバーではなく) リソースのコピーから取得されます。これは、中間ノードがリソースのコピーを持っているが、送信するリソース関連のヘッダーを検証できない、または検証しない場合に発生します。 |
204 |
Not Content |
応答メッセージにはヘッダーとステータス行が含まれていますが、エンティティ本文はありません。ブラウザを明示的に切り替えることなく、新しいドキュメントを 更新するために使用されます。 |
205 |
Reset CONtent |
は、現在のページ内のすべての HTML フォーム 要素をクリアするようにブラウザーに指示するためにブラウザーによって使用されます。 |
206 |
部分コンテンツ |
部分リクエストまたはRangeリクエストが正常に実行されました。 Content-RangeDate ヘッダーまたは Content-Location ヘッダーが含まれている必要があります。 |
3. リダイレクト ステータス コード 300~399
代替の場所を使用してリソースにアクセスするか、リソースのコンテンツの代わりに代替の応答を提供するようにユーザーに通知します。リソースが移動した場合は、リダイレクト ステータス コードとオプションの Location ヘッダーを送信して、リソースが移動したことと現在の場所をクライアントに通知できます。これにより、ブラウザは透過的に新しい場所に遷移できるようになります。
リダイレクト ステータス コードを通じてローカル リソースとサーバー リソースを検証し、サーバー リソースへの変更を表示し、ローカル コピーの適時性を維持することもできます。
リダイレクト ステータス コードを含む非 HEAD リクエストに対する応答には、情報とリダイレクト URL への接続を説明するエンティティが含まれます。
ステータスコード |
理由フレーズ |
意味 |
300 |
複数の選択肢 |
クライアントが実際に複数のリソースを指す URL をリクエストした場合に返されます。サーバーが戻ると、リクエストされた URL が削除されたときに使用される PreferredURL |
301 |
Moved Permanently |
を Location ヘッダーに含めることができます。応答の Location ヘッダーには、リソースの現在の URL |
302 |
Found |
が含まれています (301 と同様)。ただし、Location ヘッダーで指定された URL はリソースを一時的に見つけることしかできず、後続のリクエストでは古い URL を使用する必要があります。 |
303 |
See Other |
は、リソースを取得するために別の URL を使用する必要があることをクライアントに伝えます。新しい URL は Location ヘッダーにあります。その目的は、POST リクエスト の応答でクライアントを特定のリソース |
304 |
Not Modified |
にリダイレクトできるようにすることです。含まれるリクエストヘッダー。条件ヘッダーの内容は後で確認できます。このステータス コードの応答にはエンティティ本文が含まれません。 |
305 |
Use Proxy |
プロキシ経由でリソースにアクセスする必要があることを示します。エージェントの場所は Location ヘッダーによって示されます。クライアントは、すべてのリソースがプロキシを経由することを指定するのではなく、特定のリソースに関連して応答を解析します。
|
307 | 一時リダイレクト | 301 に似ています。ただし、Location ヘッダーで指定された URL はリソースを一時的に見つけることしかできないため、後続のリクエストでは古い URL を使用する必要があります |
ステータス コード 302、303、および 307 の間には交差および微妙な違いがあり、これらは HTTP/1.0 アプリケーションと HTTP/1.1 アプリケーションの違いに起因します。
HTTP/1.0 クライアントの場合、POST リクエストが開始されて 302 レスポンスが受信されると、Location ヘッダーのリダイレクト URL が受け入れられ、GET リクエスト が送信されます。
HTTP/1.0 サーバーの場合、クライアントは上記と同じことを行う必要があります。
ただし、HTTP/1.1 は同じ動作を実現するために 303 ステータス コードを使用するため、HTTP/1.1 クライアントの場合は、別の 302 ステータス コードが上書きされるのを避けるために、307 ステータス コードを使用して 302 ステータス コードを代理します。
4. クライアントエラーステータスコード 400~499
サーバーは、処理できないコンテンツを受信すると応答します。
ステータス コード |
理由フレーズ |
意味 |
401 |
Bad Request |
は、不正なリクエストが送信されたことをクライアントに通知します。 |
402 |
Unauthorized |
は、適切なヘッダーとともに返され、リソースへのアクセスを取得する前にクライアント自身の認証を要求します。 |
403 |
支払いが必要です |
未使用ですが、将来の使用のために予約されています。 |
404 |
見つかりません |
サーバーは、要求された URL を見つけることができません。通常、この URL にはエンティティが含まれており、クライアントに表示されます。 |
405 |
メソッドは許可されていません |
送信されたリクエストには、URL でサポートされていないメソッドが含まれています。リソースが使用できるメソッドを通知するために、応答にAllowヘッダーを含める必要があります。 |
406 |
Not Acceptable |
クライアントが受け入れ可能な URL に一致するリソースがない場合に使用され、クライアントは受け入れるエンティティ タイプを示すパラメータを指定できます。 |
407 |
プロキシ認証が必要 |
401と似ていますが、リソースの認証を必要とするプロキシサーバーに使用されます。 |
408 |
リクエストタイムアウト |
クライアントがリクエストを完了するとタイムアウトになり、サーバーはこのステータスコードを送信して接続を閉じます。 |
409 |
競合 |
リクエストがリソース上で引き起こす可能性のある競合について説明します。このステータス コードは、リクエストが競合を引き起こす可能性があるとサーバーが懸念する場合に送信されます。応答には、競合を説明する本文が含まれている必要があります。 |
410 |
Gone |
は、サーバーがかつてメンテナンスのためにリソースを所有しており、サーバーのリソースが削除されたときにクライアントに通知できることを除いて、404に似ています。 |
411 |
長さが必須 |
サーバーによって要求される |
412 |
Precondition Failed |
条件付きリクエストが開始されたが、条件の 1 つが失敗した場合に使用されます。 |
413 |
リクエストエンティティが大きすぎます |
クライアントによって送信されたエンティティ本体部分が、サーバーが処理できるサイズを超えています。 |
414 |
リクエストURIが長すぎます |
URLが長すぎます。 |
415 |
サポートされていないメディアタイプ |
サーバーがクライアントから送信されたエンティティのコンテンツタイプを理解できない、またはサポートできない場合に使用されます。 |
416 |
Requested Range Not Satisfiable |
リクエスト メッセージは、指定されたリソースの特定の範囲を要求していますが、その範囲が無効であるか、満たすことができません。 |
417 |
Expectation Failed |
期待を含むリクエストをサーバーが実行できませんでした。この応答ステータス コードは、サーバーが予想外の結果を生成したに違いないという明確な証拠をエージェントまたは中間プログラムが持っている場合に送信できます。 |
403Forbiddenがありますが、サーバーがリクエストの処理を拒否し、その理由が説明されていないようです。
5. サーバーエラーステータスコード 500~599
クライアントのリクエストは有効ですが、サーバーにエラーがある場合に使用できます。これは通常、エージェントとサーバー間の通信の結果です。
ステータスコード |
理由フレーズ |
意味 |
500 |
内部サーバーエラー |
サーバーがリクエストを処理できない問題が発生した場合に使用されます。 |
501 |
未実装 |
クライアントによって開始されたリクエストがサーバーの能力を超える場合に使用されます |
502 |
不正なゲートウェイ |
プロキシまたはゲートウェイとして使用されるサーバーは、次のリンクからデータを収集しますリクエスト レスポンス チェーン 疑似レスポンスを受信した場合、 |
503 |
Sevice Unavailable |
を使用して、サーバーが現在リクエストに対応できないが、将来はリクエストに対応できるようになる(スペアタイヤのような感じです)ことを示します。 |
504 |
ゲートウェイタイムアウト | 408と似ていますが、応答はゲートウェイまたはプロキシから来ます |
505 |
HTTPバージョンがサポートされていません |
受信したリクエストのバージョンが一致しません。 |
5. ヘッダー
ヘッダーは、サーバーとクライアントのアクションを決定するメソッドと組み合わせて使用されます。ヘッダーには 5 つのタイプがあり、以下で詳しく説明します。
1. 共通ヘッダー
は、メッセージに関連する最も基本的な情報を提供し、両方のタイプのメッセージで使用できます。情報ヘッダーは次のとおりです:
Header |
Description |
Connection |
クライアントとサーバーがリクエスト/レスポンス接続に関連するオプションを指定できるようにします |
Date |
日付とタイムスタンプ、説明レポートを提供しますメッセージが作成されたとき |
MIME-Version |
送信者が使用したMIMEバージョンを示します |
トレーラー |
メッセージがチャンク転送エンコーディングを使用する場合、このヘッダーを使用して、メッセージ ) 最初のコレクションの一部。 |
Transfer-Encoding |
メッセージで使用されているエンコード方式を通知します |
Update |
送信者が使用するために「アップグレード」する可能性がある新しいバージョンまたはプロトコルを提供します |
Via |
明示的なメッセージ中間ノードは |
を通過しますが、ユニバーサル caching ヘッダーが HTTP/1.0 で導入され、HTTP アプリケーションがヘッダーのローカル コピーを、サーバーから直接フェッチする代わりにキャッシュできるようになりました。基本的なキャッシュ ヘッダーは次のとおりです:
Header |
Description |
Cache-Control |
は、メッセージとともにキャッシュ命令を送信するために使用されます |
Pragma |
メッセージとともに命令を送信する別の方法, ただし、リクエスト メッセージ内の |
2. リクエスト ヘッダー
の固有のコンテンツのキャッシュには特に使用されません。クライアントに関するより詳細な情報をサーバーに提供します。その情報ヘッダーは次のとおりです:
Header |
Description |
Client-IP |
クライアントを実行しているマシンのIP |
From |
クライアントユーザーの電子メールアドレス |
ホスト |
リクエストされたサーバーのホスト名とポート番号 |
Referer |
現在のリクエスト URL のドキュメントの URL が含まれます |
UA-Color |
クライアント モニターのカラー サポートに関する情報を提供します |
UA- CPU |
クライアントの CPU タイプまたは製造元を提供します |
UA-Disp |
クライアントの表示機能に関する情報を提供します |
UA-OS |
クライアントのオペレーティング システム情報 - 名前とそのバージョンを提供します |
UA -ピクセル |
クライアントの表示ピクセルを提供します |
ユーザーエージェント |
リクエストを開始したアプリケーション名をサーバーに通知します |
2.1.ヘッダーを受け入れる
クライアントにアプリケーションの設定と機能を提供します接続の双方に利益をもたらす方法でサーバーに通知します。主な Accept ヘッダーは次のとおりです:
Header |
Description |
Accept |
は、サーバーに送信できるメディアタイプを伝えます |
Accept-Charset |
...文字セット | 送信できる
|
Accept-Encoding |
…受け入れ可能なエンコーディング
Accept- | Language |
…送信可能な言語
|
TE |
これらの拡張転送エンコーディングを使用できます
2.2. 条件付きリクエストヘッダーはリクエストに制限を追加し、サーバーが応答する前に条件が真であることを確認することを要求します。
| Header | Description
| Expect | クライアントがリクエストに必要なサーバーの動作をリストできるようにします
| If-Match | エンティティタグがドキュメントの現在のエンティティタグと一致するかどうかを取得します
|
If-Modfied-Since |
指定された日付以降にリソースが変更されていない限り、このリクエストを制限します
|
If-None-match |
エンティティタグがドキュメントの現在のエンティティタグと一致しないかどうかを取得します ドキュメント
|
If-Range |
ドキュメントの範囲に対する条件付きリクエストを許可します
|
If-Unmodified-Since |
指定された日付以降にリソースが変更されていない限りリクエストを制限します
|
範囲 |
Ifサーバーは範囲リクエストをサポートしており、リソースの指定された範囲をリクエストします
2.3. セキュリティリクエストヘッダー
がリクエストにチャレンジし、後者は認証で応答します。クライアントが特定のリソースを取得する前に慈善活動を行う必要があるため、トランザクションのセキュリティが向上します。
|
Header |
Description
|
Authorization |
クライアントエージェントが自身を認証するためにサーバーに与えるデータが含まれます
| Cookie |
暗黙的にサーバーに渡されるトークン セキュリティ関数
|
Cookie2 |
は、リクエスターがサポートするCookieのバージョンを示すために使用されます
🎜🎜2.4. プロキシ リクエスト ヘッダー
プロキシが広く適用されているため。
Header |
Description |
Max-Forward |
TRACE |
Proxy で使用される、オリジンサーバーへのパス上の他のプロキシ (ゲートウェイ) にリクエストが転送される最大回数- Authorization |
は同名のヘッダーと同じ機能ですが、プロキシに使用されます |
Proxy-Connection |
は、同名のヘッダーと同じ機能がありますが、プロキシに使用されます |
3. 応答ヘッダー
は、クライアントが情報ヘッダー、ネゴシエーション ヘッダー、セキュリティ応答ヘッダーなどの追加情報を提供するため、応答メッセージによって使用されます。情報ヘッダーは次のとおりです:
Header |
Description |
Age |
Response Duration |
Public |
リソースに対してサーバーによって提供されるメソッドのリスト |
Retry- | の後リソースが利用できません。その後、その日または時刻に再試行してください |
サーバー |
サーバー アプリケーションの名前とバージョン |
タイトル |
HTML ソースによって指定されたタイトル |
警告 |
警告理由フレーズよりも詳細なメッセージ |
ネゴシエーションヘッダーは、ネゴシエーション可能なリソースに関連する情報を伝達するために使用されます。 header
description
| ACCEPT-RANGE | classClass
TypeType |
vary | Aサーバーが表示できる他のヘッダーのリストこのリソースに使用できるリスト変化に対応する。つまり、サーバーは最適なリソース バージョンを決定し、それをクライアントに送信します。セキュリティ レスポンス ヘッダーは、HTTP チャレンジ/レスポンス認証メカニズムの応答側です。セキュリティ応答ヘッダーは次のとおりです:
|
Header |
Description
Procy-Authenticateプロキシからクライアントへのクエリリスト
|
Set-Cookie |
クライアントにトークンを設定するクライアントを識別するための |
Set-Cookie2 |
上記と同様の
|
WWW-Authenticate |
サーバーからクライアントへのクエリのリスト
|
| 4。エンティティとそのコンテンツに関する大量の情報を提供する 2 種類のメッセージに表示されます。その情報ヘッダーは次のとおりです。エンティティ上で実行されます
|
Location |
情報 クライアントエンティティの場所。リソースの場所に誘導するために使用されます
コンテンツヘッダーには、エンティティのコンテンツに関連する特定の情報が含まれます。
Header |
Description |
Content-Base |
本文内の相対URLを解析するときに使用されるベースURL
|
Content-Encoding
本文で実行されるエンコード方法 |
|
内容-言語
主題に適した自然言語を理解する
Content-Length
Length |
|
Content-Location
Location |
|
Content-MD5 |
MD5チェックコード |
Content-Range |
このエンティティによって表されるバイト範囲 |
Content-Type |
オブジェクトタイプ |
| キャッシュヘッダーは、キャッシュされたボディの情報を記述します。 |
HeaderDescription |
|
ETag
エンティティに関連するエンティティタグ |
|
Expires
エンティティは有効ではなくなり、元のオリジンからエンティティの日時を再度取得しますサーバー | |
Last-Modified
エンティティが最後に変更された日時
この章の内容全体は次のとおりです。いくつかの図が欠けていますが、少なくとも HTTP メッセージの内容を理解する必要があります。 。 問題ない。 | 上記は、HTML の権威あるガイドの第 3 章の内容です。その他の関連内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。 |