web-dev-qa-db-ja.com

現在のXHR実装はHTTP / 2を利用していますか?

これは私の誤解を浮き彫りにするかもしれませんが、私は興味がありました:

HTTP/2サーバーを実行していて、ブラウザーでサーバーに対してXHR要求を行いたい場合、XHRはヘッダーなどのパフォーマンスの最適化を自動的に利用しますか?

それとも、その機能を無視してHTTPリクエストとして動作しますか?もしそうなら、私たちのリクエストで新しい最適化を使用するために私たちができることはありますか?

17
Nick Jennings

何もする必要はありません。サーバーがHTTP/2をサポートしている場合、XHRはそれを使用します。ヘッダー圧縮などが自動的に開始されます。

試して:

  • ChromeでHTTP/2Webサイトを開きます。私たちのものを使用することができます HTTP/2プッシュ、AngularJS、およびRequireJSに関するいくつかのクールなものもチェックアウトするために
  • Devtoolsパネル(F12)を開き、次にネットワークパネルを開き、[XHR]をクリックします。ヘッダー行を右クリックし、「プロトコル」列が有効になっていることを確認します。
  • 上記の列に「h2」が表示されているはずです(この場合、AngularJSはXHRを介してテンプレートインクルードをロードしています)。
  • その間、サーバーがXHRリクエストをプッシュしたことに注意してください。プッシュされた応答の明らかな兆候は、要求ヘッダーではなく「暫定ヘッダー」であり、「ダウンロード」時間と「待機」時間が異常に短いことです。応答に追加のヘッダーを追加することもできます(x-shimmmercat-note:pushed-stream)。ブラウザはこのリクエストを採用したため、XHRリクエストは利用可能な場合はHTTP/2を使用するだけでなく、場合によってはプッシュされたリソースを使用できます
22
dsign