問題タブ [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.
node.js - Http2がエクスプレスで機能しない
私server.js
はいくつかのコードがあるファイルを持っています
その後、シェルで実行します
サーバーは待機していますが、開くことができません。http://localhost:8080とhttps://localhost: 8080を試してみました (これが正しいことはわかっています)。しかし、何も起こっていません。ブラウザでエラーも応答もありません。何が間違っていますか? また.key
、.crt
私が生成したものではないファイルをコピーしただけですが、これは問題になる可能性がありますか?
http - セッション Cookie の代わりに HTTP/2 接続を使用するには?
セッション トラッキングに、セッション Cookie の代わりに HTTP/2 接続 (TCP セッション) を使用することは可能ですか (これは、Cookie が無効になっている場合に役立ちます)。
HTTP/2 は 2015-05-14 に公開されました ( RFC 7540 )
HTTP/2 は、2015-01-13 ( v35 )から FF でデフォルトで有効になりました。
HTTP/2 サーバー実装のリスト( http2-katanaなど)
http - サーバーが開始したリクエスト
HTTP が要求応答プロトコルであることは知っています。私の問題は、要するに、クライアントがサーバーに長時間実行プロセスを開始するように要求し、進行状況情報を含む単純な JSON メッセージで進行状況をクライアントに通知したいということです。
HTTP/1.1 では、WebSocket またはサーバー送信イベント (SSE) またはロング ポーリングを使用できることを知っています。
HTTP/2 はまだ WebSocket をサポートしていないことがわかりました。
私の質問は、HTTP/2 でそのようなことを処理する最適な方法は何ですか?
HTTP/2 でサーバーが開始した要求を処理するために、私が認識していない新しいことはありますか?
それが問題なら、私はGo言語を使用しています。
tomcat - HTTP/2.0 の Tomcat サポート?
HTTP/2.0 をサポートする Tomcat の最低バージョンを知っている人はいますか? 私は彼らのサイトのいたるところを見てきましたが、これに関する詳細は見つかりません.
bundling-and-minification - HTTP/2 でバンドルの最適化が問題にならない理由
バンドリングの最適化が HTTP/2 で不要になったという systemjs ドキュメントのバンドリング部分を読みました。
HTTP/2 では、ファイルを個別にブラウザーにキャッシュできるため、バンドルの最適化が問題にならないため、このアプローチが望ましい場合があります。
私の質問:
- HTTP/2 を使用する場合、スクリプトやその他のリソースをバンドルすることを考える必要がないということですか?
- この機能を可能にする HTTP/2 の機能は何ですか?
http - 疑似/コロン ヘッダー フィールドの目的
タイトルが示すように、疑似/コロン ヘッダー フィールドの目的に関する情報を探しています。つまり、2 番目のタイプのヘッダー フィールドがある理由を知りたいです...
また、http2 では、メッセージとステータス行の代わりに疑似/コロン ヘッダー フィールドが使用されていることも知っています (^^^^その理由はわかりません ^^^); しかし、(ステータスとリクエストから) 異なる情報を中継するために http1 で使用される疑似/コロンヘッダーフィールドはありますか?
http2 - Chrome Canary は HTTP/2 を提供していません
プロトコルを理解するために、C# で小さな HTTP/2 サーバーを実装しようとしています。Chrome の最新のカナリア ビルド (v 45.0.2436.5) を実行していますが、HTTP/2 接続へのアップグレードをクライアントに交渉させることができないようです。
RFC には次のように記載されています。
ネクスト ホップでの HTTP/2 のサポートに関する事前知識なしに「http」URI を要求するクライアントは、HTTP アップグレード メカニズムを使用します ([RFC7230] のセクション 6.7)。クライアントは、"h2c" トークンを含む Upgrade ヘッダー フィールドを含む HTTP/1.1 要求を作成することによってこれを行います。
最初のリクエストにはUpgrade
ヘッダーが含まれているはずですが、含まれていません。これは私が得ている要求です:
なぜこれが起こるのか、誰かが私に説明できますか?
回答ありがとうございます!
http2 - HTTP/2 サーバーは PRIORITY フレームの送信を許可されていますか?
サーバーに大量のコンテンツをプッシュしてもらいたいのですが、順番にプッシュしてもらいたいです。明らかに、サーバーは物事を順番に送信できますが、サーバーが実際にストリームの依存関係を設定できると便利です (明確にするために、クライアントが同意しない場合に優先順位を変更できるようにするなど)。これは許されますか?具体的には、PUSH_PROMISE の直後に PRIORITY フレームを送信して、約束されたストリームを前のストリームの依存関係として設定したいと考えています。
curl - CURL を使用した HTTP2 で「サポートされていないプロトコル」が表示される
hereの手順を既に実行しましたが、 Unsupported Protocol
curl--http2
オプションを使用する場合はまだあります。同様に、 を に設定すると、プログラムは HTTP/2 ではなく HTTP/1.1 を使用して通信しますCURLOPT_HTTP_VERSION
。CURL_HTTP_VERSION_2_0
プラットフォーム: VMware Player 7 上の Ubuntu 15.04。
で nghttp2-1.0.4 をインストールし--prefix=/usr/local
たので、libnghttp2.* は にあり/usr/local/lib
ます。
これは、curl-7.43.0 を構成するコードです。
結果は、HTTP2 が有効になっていることを示しています。
と の後make
にsudo make install
、以下が返されますUnsupported Protocol
。
curl バージョンは、nghttp2 がサポートされていることを示していません。
次に、OpenSSL 1.0.2 以降が必要であるというhereのアドバイスに従いました。それを /opt/openssl にインストールしたら、次のように再構成しました。
と の後make
、sudo make install
すべての問題は同じままです。奇妙なことに、curl --version
OpenSSL/1.0.1f はまだアップグレードされていないため、上記と同じ情報が返されます。
オプションを正常に使用できるようにするためのヘルプは大--http2
歓迎です。