問題タブ [nghttp2]

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.

0 投票する
2 に答える
2776 参照

linux - nghttp2 経由で HTTP\2 をサポートする cURL を使用して Apple の APNS に接続する

このチュートリアルに従って、HTTP/2 をサポートする cURL をコンパイルしようとしました。私はDockerを使用しており、私のアプリケーションは Debian を使用する公式の PHP Docker イメージに基づいていますが、 Vagrant VM内で実行されている Ubuntu マシンでも同じ問題が発生しました。

最初は問題ないようです。実際、実行すると、curl --version私が期待するすべてが表示されます。

また、https://nghttp2.orgに問題なく接続できます。

問題は、現在 HTTP/2 で実行されているApple の最近再起動されたAPNS プロバイダー APIに接続しようとしたときに始まります。

Mac に Homebrew 経由で curl をインストールしました ( を使用--with-nghttp2)。次の (予想される) 応答を取得できます。

ただし、Docker イメージ内から同じコマンドを実行しようとすると、次のようになります。

なぜこの問題が Apple のサービスに特有のように見えるのか、また状況を改善するために何をする必要があるのか​​、私にはよくわからない.

どんな助けでも歓迎です!

0 投票する
1 に答える
1495 参照

google-chrome - サーバープッシュでプッシュした後、ブラウザーキャッシュにファイルを保存するにはどうすればよいですか?

http2 の Apache があり、ブラウザのキャッシュに保存したいファイルのサーバー プッシュを作成しましたが、そうではなく、その理由もわかりません。

次のphpファイルでプッシュを行いました。

私の観点からは、access_log でサーバーへの要求を確認できるため、サーバー プッシュは機能していますが、ファイルはブラウザーのキャッシュに保存する必要があると思いますが、そうではありません。

サーバーにファイルをプッシュしようとした後、このファイルをリクエストしてキャッシュから取得します (Chrome のネットワーク コンソールの「キャッシュから」を参照)。

ありがとう

0 投票する
1 に答える
537 参照

http2 - HEADERS フレームを送信する前に、HTTP2 クライアントから 5 つの PRIORITY フレームが送信されるのはなぜですか? HTTP2 接続を成功させるために必要ですか?

一部の HTTP2 クライアント (Firefox およびnghttp ) は、http2 プロトコルが合意された後、HEADERS フレームを送信する前に、ストリーム 3、5、7、9、11 に対して 5 つの PRIORITY フレームを送信することに気付きました。なぜだろう?PRIORITY フレームの意味はわかっているのですが、送信する意味がわかりませんが、Firefox も nghttp も送信しているので、何らかの理由があるはずです。

そして最も重要なことは、ログによると、これらのストリーム (ストリーム 3、5、7、9、11) が PRIORITY フレームの後に使用されていないことです。

Firefox のサーバーからの出力情報を以下に示します。

ただし、以下に示すように、Chrome はそれらを送信しません。では、接続を成功させるために必要ではないのでしょうか?

0 投票する
1 に答える
12799 参照

google-chrome - HTTP/2 で多重化する必要がある同時リクエストの数

長い間、ブラウザーは Web ページからアセットを取得するために、ホストごとに最大 6 つの同時 HTTP 1.1 接続を使用してきました。このゴールデン スタンダードを (はるかに) 超えると、DOS として認識され、サーバーから追放されます。

現在は HTTP/2 があり、1 つの接続で多くの HTTP リクエストを多重化できます。サーバーの過負荷を防ぐために、接続で多重化する同時リクエストの数に同様の制限を使用する必要がありますか? それとも、単一の接続でさらに多くのリクエストを多重化しても害はありませんか?

ブラウザーがホストごと、および HTTP/2 サーバーの接続ごとに使用する制限を知っている人はいますか?