問題タブ [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.
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 をより高いバージョンで再インストールしたため、問題は発生していますか?
firefox - ローカル HTTP/2 プロキシの証明書の生成
安全な HTTP/2 プロキシを使用するために毎晩 Firefox を取得しようとしていますが、自己署名証明書の受け入れを拒否しています。
プロキシは、HTTP/2 フロントエンドとしての nghttp2 と、バックエンドとしての単純な Twisted プロキシで構成されています。Twisted コードはhttps://wiki.python.org/moin/Twisted-Examplesからのもので、HTTP/1.1 プロキシとして単独で動作します。nghttp2 が呼び出されます
https://nghttp2.org/documentation/nghttpx-howto.html#http-2-proxy-modeで指定されているように、Firefox はこれをプロキシとして使用しています。
を使用してlocalhost用のserver.pemを作成しました
プロキシ経由でhttp://www.something.comのような一般的な Web サイトを読み込もうとすると、Firefox は「この接続は信頼されていません」という警告を表示します。ただし、例外を追加して保存するように指示すると、警告が再び表示されます。私が知る限り、nghttp2 フロントエンドを通過して Twisted プロキシに到達することは決してありません。
セキュアプロキシ認証のために何か違うことをしているはずですか? 「Firefox nightly と Chromium の両方で、安全なプロキシに有効な証明書が必要であることに注意してください。」という nghttp2 以外の情報はあまり見つかりません。
jetty - Jetty HTTP/2 クライアント受信サーバー プッシュの例
サーバー プッシュをサポートする Jetty の HTTP/2 クライアントは、Jetty 9.3 RC (リンク) で実装されています。ただし、これに関連するドキュメントやサンプル コードは見つかりませんでした。たとえば、このサイトからプッシュされたリソースを受信するためのサンプルコードを提供できますか: https://nghttp2.org ( http2 サーバープッシュを有効にしたパブリックサーバー)
---UPDATE 1--- sbordet が言ったように、このファイル をテストしようとしました。ただし、この行を実行した後
このエラーに遭遇しました
これが私のpom.xml
そして、ここに私のプロジェクトディレクトリがあります
---更新2---
タグを次のように変更pom.xml
<build>
しました: (明示的に JDK 8 を使用し、-Xbootclasspath を追加して、Jetty が提供する alpn-boot.jar を指すようにします)。Java 8 update 31 を使用しています
このコマンドを実行した後:
https://webtide.com/ (Client.java ファイルのデフォルト ホスト)に接続しようとすると、このエラーが発生しました。
そして、 https://nghttp2.org/に接続するときのこのエラー
---更新 3---
別のアプローチを取る: jetty プロジェクト全体のすべての master ブランチをプルし、次に Intellij プロジェクトを作成すると、jetty.project/jetty-http2/http2-client
パブリック サーバーhttps://webtide.comおよびhttps://nghttp2.orgで機能します。しかし、自己署名証明書 http2 サーバー (仮想マシンに常駐する nghttp2 + nginx を使用) でテストすると、このエラーが発生します。
http2 - HTTP/2 経由で通信する nghttpx は、HTTP/1.1 よりも多くのネットワーク トラフィックをもたらす
私はこれを設定しています:
[Web サイト]--WAN--[Squid]---[nghttpx #2]--WAN--[nghttpx #1]---[Web ブラウザ]
nghttpx #1 は HTTP/1.1 経由でローカル Web ブラウザーからの HTTP プロキシ リクエストを受け入れ、Web サイトを要求する nghttpx #2 への HTTP/2 接続を確立し、コンテンツは同じパス経由で返されます。目標は、ネットワーク トラフィックを維持するために、nghttpx #1 を nghttpx #2 に接続する WAN 経由で HTTP/2 接続を確立することです。
nghttpx #1 は次のように実行されています。
nghttpx -p -f127.0.0.1,8080 -b nghttpx #2 IP ,8443 --backend-no-tls --log-level=INFO
nghttpx #2 は次のように実行されています。
nghttpx -s -f'*,8443' -b127.0.0.1,12345 --backend-no-tls --frontend-no-tls --log-level=INFO
ポート 12345 は Squid です。
ここで、nghttpx #1 と Web ブラウザーが/usr/bin/netstat -i -b -n -I interfaceを介して実行されている WAN ネットワーク インターフェイスのバイト数を測定します。プロキシなしで直接アクセスしている間の入力バイト。Web サイトをロードするのに約 150 kB を測定します。この nghttpx チェーンでは、約 170 kB です。HTTP/2 を使用しているときに、実際により多くのネットワーク トラフィックが発生していることに非常に驚いています。
質問: HTTP/2 は、圧縮によるトラフィックの節約につながるべきではありませんか? 私は何を間違っていますか?
ありがとうございました!
http2 - nghttp2: POST ペイロード
nghttp2 を使用してデータセットを POST しようとしています。がデータ フレームではなく、ジャスト スルー ヘッダー フレームをnghttp2_submit_request
送信していることに気付きました。stream_user_data
nghttp2 を使用してデータ (json またはバイナリ) を送信する便利な方法は何ですか? nghttp2_submit_data
asioを使用する必要がありますsession.submit
か?
google-chrome - httpd-2.4.18 mod_http2 は curl と nghttp で動作しますが、ブラウザでは動作しません
http2サーバーで動作するように、nghttp 1.6.0およびcurl 7.46でhttpd-2.4.18をインストールしました。サーバーは、Curl および nghttp コマンドでテストすると http2 で動作するようですが (以下に示すように)、ブラウザー (Google Chrome 47.0.2526.106) を使用すると、応答ヘッダーは http2 ではなく http1 になり、Spdyインジケータは灰色です (青色のはずです)。理由を知っている人はいますか?
使用するコマンド
http2 が適切に動作することを示す Curl コマンドを使用しました。
nghttp2 も同様で、次のコマンドで http2 サーバーが正常に動作しているようです。
ブラウザーからの応答ヘッダー:
ブラウザからのリクエスト ヘッダー:
http - HTTP/2 プロトコルの WINDOW_UPDATE フレームと SETTINGS フレームの違いは何ですか?
HTTP/2 rfc7540仕様の一部を読みましたが、HTTP/2 プロトコルの WINDOW_UPDATE フレームと SETTINGS フレームの違いは何ですか?
apache2.4 - http2 プッシュを行うと、サーバーにリクエストを送信しますか?
一部のクライアントがindex.htmlを要求したときに4つの画像のプッシュを構成したhttp2のサーバーがあり、それは機能しますが、クライアントが画像のいくつかの要求を行うことをApacheのaccess_logで見ました。それが正しいか?つまり、access_log には index.html の要求のみが含まれている必要があり、クライアントはインデックスとプッシュされた画像の応答を取得しますが、プッシュされた画像の要求は取得しないと思います。
これは私のaccess_logが持っているものです: