フロントエンドは、HTTPリクエストのHTTPシリーズ(3)HTTPパケット内の情報を知っている必要がありますでしょう

HTTPパケット

HTTPプロトコルの相互作用のための情報は、HTTPパケットとして知られています。リクエスタは、応答がHTTPメッセージ自体の文字列からなるテキストデータの複数行、応答パケットと呼ばれ、HTTPリクエストメッセージパケットと呼ばれます。

HTTPパケットは、ヘッダとメッセージボディは、2つの、二つの主要なメッセージであるメッセージに分割することができます。どちらも初期のレンタルから。空白行は、必ずしもメッセージ本体を持っていない正常に分割します。

Requestパケットと応答パケットの構造

我々は、要求と応答メッセージのパケット構造を見てください。以下のデータによって、要求パケットと応答パケットヘッダの内容。今ヘッダフィールドのすべての種類と表示されたステータスコードは、後で説明します。

例要求Xinlang

リクエストヘッダ
レスポンスヘッダ

リクエストライン

この方法は、リクエストURLとHTTPリクエストのリクエストを含み、

ステートライン

結果は、応答ステータスコード、理由フレーズとHTTPのバージョンが含まれていることを示しています

ヘッダフィールド

含むリクエストとレスポンスヘッダの様々な種類の条件及び特性は前記
一般的に4つの第1の部分は、一般的なヘッダ、要求ヘッダ、応答ヘッダ、エンティティ・デーモンであるました

他の

これは、ヘッダに定義されていないHTTPのRFCを含有することができます

伝送効率を向上させるためのコーディング

これは、データ送信中元のHTTPデータに応じて直接送信することができるが、であってもよいです。送信処理では、符号化することにより伝送効率を向上させます。効果的にアクセス多数の要求を処理するために、伝送符号化されており、符号化処理が完了するために、コンピュータを必要とし、したがって、より多くのCPUリソースを消費します

エンティティの違いメッセージの件名と本文

  • パケットは
    オクテットを絞ることによって、HTTP通信の基本単位です。HTTP通信を介して送信される組成物
  • エンティティ
    要求または応答ペイロードデータが送信されるように、トピックエンティティの内容は、バルク組成物およびデーモンの
    送信要求又は応答のためのHTTPエンティティ本体の本体。
    メッセージ本体は、エンティティボディにほぼ等しいです。唯一の送信動作、同じ日にエンコードするエンティティの件名の内容は変化し、それが彼のメッセージボディに導いの差である
    二つの用語後のパケットとエンティティは、多くの場合、事前に表示される2つの違いを理解します

圧縮されたコンテンツの符号化された送信

メッセージの小容量を作るために、添付ファイルを増加させる送信するメッセージのような、我々は最初に送信した後、ZIPファイルの添付ファイルを追加する
機能、暗号化コンテンツと呼ばれるHTTPプロトコルを、同様の動作を行うことができ、コンテンツのエンコーディング実体の内容で指定された符号化形式、およびエンティティ情報のアプリケーション圧縮を維持するために、クライアントによってコードされ、コンテンツを受信するエンティティは、復号化の原因であります

一般的に使用される次のコンテンツのエンコードされ

  • GZIP
  • comperss(圧縮標準UNIXシステム)
  • 収縮(ZLIB)
  • アイデンティティ(符号化されません)

送信チャンク転送符号分割

ブラウザがページがブラウザでページが表示されるように緩やかにすることができ、複数のブロックに分割されたデータによって、大量のデータを転送するとき、表示することができない要求する前にHTTPトラフィックでは、すべての物理リソースが転送を要求しないエンコーダが完了している
実体がそれをチャンク転送符号化と呼ばれる機能ブロック

チャンク転送符号化が複数のセクションにエンティティボディ、各々は16進数のブロックサイズで標識されるであろう、そして最後の一つはエンティティボディ「0(CR + LF)」を使用するマーク
チャンク転送符号化に関連するエンティティを、クライアントは、復号化の責任受信され、符号化エンティティボディの前に回復するために
符号化と呼ばれるHTTP1.1本変速機構(転送符号化)、彼は、通信時にいくつかの符号化方式によって送信することができるが、指定チャンク転送エンコードで複数のための

マルチデータセットオブジェクトの複数の送信

メッセージを送信するとき、我々はメールでテキストを書いて、複数の添付ファイルを追加することができます。これは、MIME(多目的インターネットメール拡張、多目的インターネットメール拡張)メカニズムの使用。これは、メール処理、テキスト、画像、ビデオ、およびその他のデータの多くの異なる種類が可能になります。例えば、そのような符号化方式指定されたASCII文字列への画像などのバイナリデータ、MIMEタイプを使用することは、タグデータを記載されています。MIMEに拡張はオブジェクトのマルチパートセット(マルチパート)と呼ばれる方法を使用し、データの複数の異なるタイプを収容します。
HTTPプロトコルは、オブジェクトの複数の部分集合を採用しており、対応する送信パケットの本体は、エンティティの多くのタイプを含むことができます。これは、一般的に、画像やテキストファイルをアップロードするときに使用されます。
次の組に含まれるオブジェクトのマルチターゲット部分。

  • マルチパート/フォームのデータは、
    ウェブフォームをアップロードする際に使用されています。
  • マルチパート/ byteranges
    ステータスコード応答メッセージ206が使用範囲の複数の内容を含みます。
    HTTPパケットに使用マルチパートオブジェクトは、設定された時間内のヘッダーのContent-typeフィールドを追加する必要があります。これは後で説明し、知っていることに消極的である
    - AaB03x: - 「」マーク(例えば、各エンティティの境界線指定した文字列の開始前に挿入された命令のエンティティの様々な種類のオブジェクトのマルチパートのコレクションを、分割する境界文字列を使用します、 - THIS_STRING_SEPARATES)に、最後の文字列に対応するオブジェクトのマルチパートセットの「 - 」端としてマーク
    ヘッダフィールドを含むことができるオブジェクトのマルチパート型のコレクションの各部分の、付加部分に埋め込まれてもよいですセット、オブジェクトのマルチカーパーツ。

レンジリクエストコンテンツ取得部

以前は、ユーザーが今少し大きめの画像や文書がために非常に困難であったサイズをダウンロードし、その後、インターネットへの本の高速帯域幅のアクセスを使用することができます。ダウンロードは、ネットワークの中断中に遭遇した場合。これは、上記の問題を解決するために、いわゆる回復を復元するためのメカニズムの必要性は回復が前にダウンロードからダウンロードを中断され、再スタートしなければなりません。
ダウンロード数のエンティティを指定する必要があり、この機能を実現します。これにより、送信要求の指定された範囲は、範囲要求(Range要求)と呼ばれています。
リソース10000バイトのサイズ、要求された場合スコープ、要求されたリソースの5001万バイト。
レンジリクエストヘッダフィールドの実装は、バイト範囲鳴ったリソースを指定するために使用されるであろう。:次のように指定されたバイトの範囲

  • 5001から10000のバイト
Range: bytes=5001-10000
复制代码
  • からのすべての5001のバイトをした後、
Range: bytes=5001-
复制代码
  • 当初から複数のレンジ5000-7000 3000のバイトとバイトへ
Range: bytes=0-3000, 5000-700
复制代码

範囲要求について、応答は206部分コンテンツ応答パケットのステータスコードを返します。さらに、複数の要求の範囲の範囲は、応答パケットのContent-Typeヘッダフィールドにマルチパート/ byterangesを示す応答を返します。
サーバーが範囲要求に応答できない場合は、ステータスコード200 OKの完全かつ実質的な内容が返されます。

コンテンツネゴシエーションは、最も適切なコンテンツを返します。

ウェブサイトと同じコンテンツページの複数のコピーがあるかもしれないこと。このような英語やWebページ、同じであるが、その内容の中国語版が、使用言語として異なっています。
同じWebページにアクセスする際、デフォルトのブラウザの言語が英語や中国語、RUI、ウェブページの対応する英語または中国語版が表示されている時間。このようなメカニズムは、コンテントネゴシエーションと呼ばれています。
コンテンツネゴシエーションメカニズムは、応答を交渉するために、クライアントとサーバー上のリソースを参照し、クライアントに最も適切なリソースを提供します。ベンチマークなどの言語、文字セットエンコードのコンテンツネゴシエーションは、リソースの応答を決定します。
含まれている要求パケットの一部のヘッダフィールドが決意基準です。これらのヘッダフィールドの詳細な説明は、次のセクションをご参照ください

  • 受け入れます
  • 受け入れ、文字セット
  • 受け入れエンコード
  • 受け入れる言語
  • コンテンツ言語

コンテントネゴシエーション技術は、次の3種類があります。
サーバーのネゴシエーション(サーバー主導の交渉)
サーバーによるコンテンツのネゴシエーション。自動処理サーバの終了時に参照としてリクエストヘッダフィールドに。しかし、ユーザーのために、意思決定のための基礎として、ブラウザから送信された情報は、必ずしも最高のコンテンツをフィルタリングしません。
クライアント主導型のネゴシエーション(エージェント駆動型ネゴシエーション)
クライアントコンテンツネゴシエーションモードを持っています。ユーザーが手動で利用できるブラウザリアルオプションのリストから選択します。開く選択はJavaScriptを使用することができ、Webページ上で自動的に行うことができます。例えば、OSの種類によって入力するか、ブラウザ、ページ自体またはモバイル版のPC版に切り替える必要があります。
透過的ネゴシエーション(交渉透明)は
、サーバーとクライアントで、サーバとクライアント主導のドライブの組み合わせである各コンテンツネゴシエーションのための方法です。

フロントエンドテクノロジーライターの弟、再現宣言

人々の新しいフロントエンド技術交換基はフロントエンド技術と呼ばれ、Node.jsの/ Vue.js / React.js / /マイクロチャネル技術アプレット通信の問題があっ-Native.jsを反応します。ようこそ!グループ番号:426 334 209

グループチャットに参加するには、リンクをクリックして、[フロントエンド技術交流グループ] qm.qq.com/cgi-bin/qm / ...

おすすめ

転載: juejin.im/post/5ce94e5ff265da1b6d4000e1