通常、HTTP メッセージには、クライアントからサーバーへの要求メッセージと、サーバーからクライアントへの応答メッセージが含まれます。どちらのタイプのメッセージも、開始行、1 つ以上のヘッダー フィールド、ヘッダー フィールドを終了するだけの空白行、およびオプションのメッセージ本文で構成されます。 HTTP ヘッダー フィールドには、一般ヘッダー、要求ヘッダー、応答ヘッダー、およびエンティティ ヘッダーの 4 つの部分が含まれます。各ヘッダー フィールドは、ドメイン名、コロン (:)、およびドメイン値で構成されます。ドメイン名では大文字と小文字が区別されません。フィールド値の前に任意の数のスペースを追加できます。各行の先頭に少なくとも 1 つのスペースまたはタブを使用して、ヘッダー フィールドを複数行に拡張できます。
#一般ヘッダー フィールド (一般ヘッダー)
一般ヘッダー フィールドには、要求メッセージと応答メッセージの両方でサポートされるヘッダー フィールドが含まれます。メッセージに関連する最も基本的な情報である共通ヘッダー フィールドには次のものが含まれます。 Connection: クライアントとサーバーが要求/応答接続に関連するオプションを指定できるようにします。 日付: メッセージがいつ作成されたかを示す日付とタイムスタンプを入力します。 MIME-Version: 送信者が使用する MIME バージョンを示します。 トレーラー: メッセージがチャンク転送エンコーディングを使用している場合、このヘッダーを使用して、メッセージのトレーラー部分にある一連のヘッダーをリストできます。 Transfer-Encoding: メッセージの信頼性の高い送信を保証するために、メッセージにどのようなエンコード方式が使用されているかを受信側に通知します。 アップグレード: 送信者が使用するために「アップグレード」する可能性がある新しいバージョンとプロトコルを提供します。 Via: メッセージが通過する中間ノードを示します。 一般ヘッダー フィールドの拡張では、通信する双方の当事者がこの拡張機能をサポートしている必要があります。サポートされていない一般ヘッダー フィールドがある場合は、通常、エンティティ ヘッダー フィールドとして処理されます。以下に、UPnP メッセージで使用されるいくつかの一般的なヘッダー フィールドを簡単に紹介します。Cache-Control ヘッダー フィールド
Cache-Control は、リクエストと応答が従うキャッシュ メカニズムを指定します。要求メッセージまたは応答メッセージで Cache-Control を設定しても、別のメッセージの処理中のキャッシュ プロセスは変更されません。 リクエスト時のキャッシュ命令には、no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached が含まれます。 応答メッセージの指示には、public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age が含まれます。 各メッセージの指示の意味は次のとおりです。 Public は、応答を任意のキャッシュ領域にキャッシュできることを示します。 プライベートは、単一ユーザーの応答メッセージの全部または一部を共有キャッシュで処理できないことを示します。これにより、サーバーは、他のユーザーのリクエストには無効なユーザーからの部分的な応答のみを記述することができます。 no-cache は、要求または応答メッセージをキャッシュできないことを示します。 no-store は、重要な情報が意図せず公開されることを防ぐために使用されます。リクエスト メッセージで送信すると、リクエスト メッセージと応答メッセージの両方でキャッシュが使用されます。 max-age は、クライアントが指定された時間 (秒単位) を超えない存続期間を持つ応答を受信できることを示します。 min-fresh は、クライアントが現在時刻に指定された時間を加えた時間よりも短い応答時間で応答を受信できることを示します。 max-stale は、クライアントがタイムアウト期間を超えて応答メッセージを受信できることを示します。 max-stale メッセージの値を指定すると、クライアントは指定されたタイムアウト期間の値を超える応答メッセージを受信する可能性があります。 関連する推奨事項: 「Python ビデオ チュートリアル 」
Date ヘッダー フィールド
Date ヘッダー フィールドは、時刻の記述形式はrfc822で定義されています。たとえば、日付:Mon,31Dec200104:25:57GMT。 Date で記述される時刻は世界標準時を表しており、現地時間に変換するにはユーザーのタイムゾーンを知る必要があります。Pragma ヘッダー フィールド
Pragma ヘッダー フィールドは、実装固有の命令を含めるために使用されます。最も一般的に使用されるのは、Pragma:no-cache です。 HTTP/1.1 プロトコルでは、その意味は Cache-Control:no-cache と同じです。リクエスト メッセージ
リクエスト メッセージの最初の行は次の形式です。 MethodSPRequest-URISPHTTP-VersionCRLFMethod は、 Request-URI、このフィールドは大文字と小文字が区別され、OPTIONS、GET、HEAD、POST、PUT、DELETE、および TRACE が含まれます。 メソッド GET および HEAD は、すべての一般的な WEB サーバーでサポートされる必要があります。他のすべてのメソッドの実装はオプションです。 GET メソッドは、Request-URI によって識別される情報を取得します。 HEAD メソッドは、Request-URI によって識別される情報も取得しますが、応答時にメッセージ本文を返しません。 POST メソッドは、リクエストに含まれるエンティティ情報を受信するようにサーバーにリクエストでき、フォームを送信したり、ニュース グループ、BBS、メール グループ、データベースにメッセージを送信したりするために使用できます。 SPはスペースを意味します。 Request-URI は URI 形式に従います。このフィールドがアスタリスク (*) の場合、リクエストが特定のリソース アドレスではなく、サーバー自体に対するものであることを示します。 HTTP- バージョンは、HTTP/1.1 など、サポートされている HTTP バージョンを示します。 CRLF は復帰文字を表します。リクエスト ヘッダー フィールドにより、クライアントはリクエストまたはクライアントに関する追加情報をサーバーに渡すことができます。リクエスト ヘッダー フィールドには、次のフィールドが含まれる場合があります: Accept、Accept-Charset、Accept-Encoding、Accept-Language、Authorization、From、Host、If-Modified-Since、If-Match、If-None-Match、If -Range 、If-Range、If-Unmodified-Since、Max-Forwards、プロキシ認可、範囲、リファラー、ユーザーエージェント。
リクエスト ヘッダー フィールドの拡張には、通信する両方の当事者からのサポートが必要です。サポートされていないリクエスト ヘッダー フィールドがある場合、通常はエンティティ ヘッダー フィールドとして処理されます。
典型的なリクエスト メッセージ:
GET http://download.google.com/somedata.exe Host: download.google.com Accept:/ Pragma: no-cache Cache-Control: no-cache Referer: http://download.google.com/ User-Agent:Mozilla/4.04en Range:bytes=554554-
上記の例の最初の行は、HTTP クライアント (ブラウザまたはダウンローダーなど) が GET メソッドを通じて指定された URL を取得することを示しています。書類。茶色の部分はリクエストヘッダーフィールドの情報を表し、緑色の部分は一般的なヘッダー部分を表します。
Host ヘッダー フィールド
Host ヘッダー フィールドは、要求されたリソースのインターネット ホストとポート番号を指定し、元のサーバーまたはゲートウェイの場所を示す必要があります。要求された URL。 HTTP/1.1 リクエストにはホスト ヘッダー フィールドが含まれている必要があります。そうでない場合、システムは 400 ステータス コードを返します。
Referer ヘッダー フィールド
Referer ヘッダー フィールドを使用すると、クライアントはリクエスト URI のソース リソース アドレスを指定できます。これにより、サーバーはフォールバック リストを生成できます。ログインしてキャッシュを最適化するために使用できます。また、メンテナンス目的で放棄された接続や障害のある接続を追跡することもできます。リクエストされた URL に独自の URL アドレスがない場合、Referer を送信できません。部分的な URL アドレスを指定する場合、このアドレスは相対アドレスである必要があります。
Range ヘッダー フィールド
Range ヘッダー フィールドは、エンティティの 1 つ以上のサブ範囲を要求できます。たとえば、
は最初の 500 バイトを表します: bytes=0-499
は 2 番目の 500 バイトを表します: bytes=500-999
最後の 500 バイトを表します: bytes=-500
範囲を示します500 バイト以降: bytes=500-
最初と最後のバイト: bytes=0-0,-1
複数の範囲を同時に指定: bytes=500-600,601-999
ただしサーバーはこのリクエスト ヘッダーを無視できます。無条件 GET に Range リクエスト ヘッダーが含まれている場合、レスポンスはステータス コード 200 (OK) ではなく 206 (PartialContent) で返されます。
User-Agent ヘッダー フィールド
User-Agent ヘッダー フィールドの内容には、リクエストを行ったユーザーの情報が含まれています。
応答メッセージ
応答メッセージの最初の行は、次の形式です:
HTTP-VersionSPStatus-CodeSPReason-PhraseCRLF
HTTP -Version は、サポートされている HTTP バージョン (HTTP/1.1 など) を示します。 Status-Code は 3 桁の結果コードです。 Reason-Phrase は、Status-Code の簡単なテキスト説明を提供します。 Status-Code は主にマシンの自動識別に使用され、Reason-Phrase は主にユーザーの理解を助けるために使用されます。ステータス コードの最初の数字は応答のカテゴリを定義し、最後の 2 つの数字には分類効果はありません。最初の数字は 5 つの異なる値を取ることができます:
1xx: 情報応答クラス。要求が受信され、処理が続行されたことを示します。
2xx: 処理成功応答クラス。アクションが正常に受信されたことを示します。 、理解と承諾
3xx: リダイレクト応答クラス。指定されたアクションを完了するには、さらなる処理を受け入れる必要があります。
4xx: クライアント エラー。顧客リクエストに構文エラーが含まれているか、リクエストを実行できません。正しく実行されました
5xx: サーバー エラー、サーバーは正しいリクエストを正しく実行できません
応答ヘッダー フィールドを使用すると、サーバーはステータス ラインに配置できない追加情報を渡すことができます。これらのフィールドは主にサーバー情報とRequest-URIを記述します。応答ヘッダー フィールドには、Age、Location、Proxy-Authenticate、Public、Retry-After、Server、Vary、Warning、および WWW-Authenticate が含まれます。レスポンスヘッダフィールドの拡張には通信する双方のサポートが必要であり、サポートされていないレスポンスヘッダフィールドがある場合は、通常はエンティティヘッダフィールドとして処理されます。
典型的な応答メッセージ:
HTTP/1.0200OK Date:Mon,31Dec200104:25:57GMT Server:Apache/1.3.14(Unix) Content-type:text/html Last-modified:Tue,17Apr200106:46:28GMT Etag:”a030f020ac7c01:1e9f” Content-length:39725426 Content-range:bytes554554-40279979/40279980
以上がPythonのヘッダーとはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。