問題タブ [http2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
server-push - HTTP 2 はサーバー プッシュをサポートしますが、これはどういう意味ですか?
HTTP 2 (まだ開発中)について多くのことを読んだので、サーバー プッシュ機能についても聞いたことがありますが、私の頭では、これは明確ではありません。
このサーバー プッシュ機能は、クライアントが要求を行わなくても、サーバーがクライアントに応答を送信できることを意味しますか? バニラの TCP 接続のように?それとも私は要点を逃していますか?
http - SPDY/HTTP2 は応答を連結しますか?
SPDY/HTTP2 について質問があります。通常、複数の CSS ファイルと JS ファイルを 1 つのファイルに連結して、リクエストを保存し、パフォーマンスを向上させます。SPDY/HTTP2 は複数のリクエストを 1 つのレスポンスにまとめると聞きました。これは、プロトコルによって処理されるため、CSS ファイルと JS ファイルを事前に連結する必要がなくなったことを意味しますか?
言い換えれば、HTTP1 で使用するのと同じ方法で SPDY/HTTP2 で<script source="moduleA.js"></script>
andを使用できますか? これは応答パフォーマンスの観点からは同じですが、キャッシュを変更して保持できるように、各ファイルを個別にキャッシュするという利点がありますか?<script source="moduleB.js"></script>
<script source="allScripts.js"></script>
moduleB.js
moduleA.js
http - HTTP2 ドラフトで使用される頭字語
http2 ドラフト の「5.1. Stream States」を読んだとき、「図 1: Stream States」の頭字語の説明が見つからず、わかりにくかったです。
私の推測は次のとおりです。
- PP: PUSH_PROMISE
- H: ヘッダー
- ES: END_STREAM
- R:応答?
彼らは正しいですか?
ps。先月、HTTP メーリング リストにこの質問をしましたが、まだ回答がありません。
linux - --http2.0 オプションを curl 7.33.0 で使用すると、サポートされていないプロトコルが返されます
私は centos 6.2 を使用しています。サーバー要求の 1 つで curl --http2.0 を使用する必要がありましたが、http: //curl.haxx.se/docs/manpage.htmlを見た後、7.19.6 を使用していました。 --http2.0 オプションは curl 7.33.0 でのみサポートされているため、その問題を克服するために、 http://www.linuxfromscratch.org/blfs/view/svnの手順に従って curl 7.33.0 をインストールしました。 /basicnet/curl.html カールをインストールした後、それを使用しようとしましたが、まだcurl(1):unsupported protocolとしてエラーが表示されます。次を使用してカールバージョンを確認しました: curl --versionこれが提供しているバージョン自分 :
これ --http2.0 を使用する必要がありましたが、どうすればそれを行うことができますか? curl 7.19 がインストールされ、curl をより高いバージョンで再インストールしたため、問題は発生していますか?
c++ - Berkeley ソケットによる多重化
バークレー ソケットを使用して C++ で記述した Web HTTP/1.1 サーバーの実装があります。リクエストとレスポンスの多重化を可能にする HTTP/2.0 (または SPDY) のサポートの実装を検討しています。
HTTP/2.0 のバイナリ フレーミング レイヤーは、クライアントとサーバーが HTTP メッセージを独立したフレームに分解し、それらをインターリーブし、反対側で再構築できるようにすることで、完全な要求と応答の多重化を可能にします。
私の質問は次のとおりです。バークレー ソケット API を使用して記述している既存の HTTP/1.1 プログラムで、HTTP/2.0 (または SPDY) タイプの要求と応答の多重化を有効にするにはどうすればよいですか? おそらく、HTTP/2.0 (または SPDY) でサポートされている前述のフレーム多重化は、TCP/IP スタックの既存のメカニズムによって既に処理されているのでしょうか?
説明:
単一の接続を使用して複数の要求と応答を並行して配信する多重化の部分に特に興味があります。仕様から、これがアプリケーションレベルのプロトコルでどのように実装されているかわかりませんか? 何か案は?
wireshark - HTTP/1.1 接続が HTTP/2 RESET_STREAM コマンドを発行していると Wireshark が報告するのはなぜですか?
HTTP/1.1 を使用しているクライアントとサーバーがあります。少数の HTTP/1.1 交換の後、Wireshark は、「不明」のエラー コードを持つ (クライアントからの) タイプ RESET_STREAM の単一の HTTP2 コマンドを識別します。
Wireshark が私の HTTP/1.1 接続のバイナリ データ ペイロードからこの HTTP2 "メッセージ" を誤って解析しているのではないかと疑っています (Content-Length ヘッダーによって制御されます)。しかし、この特定の環境で HTTP/1.1 セッションが期待どおりに進行しないという事実により、何が起こっているのか疑問に思いました。
アイデアやコメントをいただければ幸いです。
curl - curl で HTTP/2 のプッシュ機能を使用するには?
私は、HTTP/2 のプッシュ機能を使用して、発行される GET 要求の数を減らし、特定のクライアント サーバー実装で認識される平均遅延を減らす方法を検討してきました。既存のクライアントは、curl を使用して GET リクエストを発行することに大きく依存しており、現在の実装を再利用できる必要があります。最近のバージョンの curl は、基になる nghttp2 モジュールに依存して、HTTP/2 のサポートを提供します。既存の nghttp2 サーバーを使用:
nghttp と curl の両方を使用して、サンプル テキスト ファイルのコンテンツを取得できます。
ただし、nghttp2 のプッシュ機能を使用すると、別のテキスト ファイルがプッシュされます。
curl はプッシュされたリソースを処理できないようです:
実際、サーバー側では、開いている 2 つのストリームに対して 2 つのリセットが受信されます。
HTTP/2 プッシュ機能で curl を使用する方法はありますか?
netty - [SPDY][HTTP2] netty でカスタムサーバープッシュを実行
SPDY や HTTP2 プロトコルを使用してカスタム サーバー プッシュを netty で実行する方法がわかりません。
たとえば、私はそれを行うことができます:
- 桟橋で PushStrategy を使用: http://www.eclipse.org/jetty/documentation/9.2.2.v20140723/spdy-implementing-push.html
- Undertow の ServerConnection を使用: https://github.com/undertow-io/undertow/blob/master/core/src/main/java/io/undertow/server/ServerConnection.java#L230
ありがとう!
php - PHP を使用して複数の HTTP 2.0 ストリームをクライアントに送信する
HTTP 2.0 の複数ストリーム メソッドは非常に興味深いようです。そして、今日PHPで使用できるかどうかを知りたいですか?
さまざまなデータベース クエリからさまざまなサイト コンテンツを送信することで、php アプリケーションを高速化できます。
編集:私の例は、PHPでマルチスレッド同期スレッドを使用して(これを行うための優れたライブラリがたくさんあります)、2つ以上のサイトコンテンツを同時に取得して送信することを意味していました(手続き型の実行ではありません)。