2016-04-07 4 views
5

HTTP/2がプロキシサーバーの実装に与える影響特に、例えば、クライアントがHTTP/1.xのみをサポートするコンテンツサーバにHTTP/2要求を送信した場合、プロキシサーバはHTTP/1.x要求にHTTP/2要求を変換してから、コンテンツサーバー?また、コンテンツ・サーバーからの応答を受信すると、プロキシー・サーバーは応答をHTTP/2形式に変換してからクライアントに送り返す必要がありますか?リバースプロキシサーバーでHTTP/2とは何を意味しますか?

答えて

2

はい、あなたの言うとおりです。少し深い分析の場合は、check this post。しかし要するに、HTTP/2からHTTP/1.1への変換は一方向でなければならず、他方ではHTTP/1.1からHTTP/2への変換が行われなければならない。

実際には、このプロトコルでは従来のテキストベースのパーサーは必要ありませんが、包括的なHTTP/2サーバーではHTTP/1.1のクライアントで作業するだけでなく、HTTP/1.1パーサーが必要です。 (クローラの中で)だけでなく、内部のアプリケーションに話すためにも。

最も重要なアプリケーションプロトコルの1つは、FastCGIです。 FastCGIでは、アプリケーションからのHTTP/1.1応答の解析と、クライアントへのHTTP/2応答への変換も必要です。

+0

これが当てはまる場合、プロキシサーバーは、HTTP/2クライアントと、HTTP/1.1のみをサポートするコンテンツサーバーとの間の通信を可能にするため、これまで以上に役立ちますコンテンツサーバーをHTTP/2にアップグレードしますか? – user3744927

+0

絶対に。私はそのような獣の1つ、ShimmerCatを作ります。 – dsign

4

dsignが議論したように、あなたの理解は正しいです。

しかし、HTTP/2の問題(主に待ち時間)の問題が一般的な問題ではあまり問題にならないため、エッジ接続(つまりリバースプロキシ)でHTTP/2に大きな利点があることを指摘しておく価値があると思いました。リバースプロキシからコンテンツサーバーへの、より短い、通常は高帯域幅のホップです。

たとえば、エッジでリバースプロキシに100msの遅延があり、リバースプロキシとコンテンツサーバー間でわずか1msの遅延がある場合、コンテンツサーバーがHTTP/1.1をプロキシサーバーに話しているという事実は、超高速1msのレイテンシにより、パフォーマンスに大きな影響を与えます。したがって、エンド・クライアント(HTTP/2からリバース・プロキシに話す)は、HTTP/1.1以上の巨大なパフォーマンスを誇っています。

+0

リバースプロキシはh2接続のすべてのクッキーを覚えておく必要があります。そのため、ダウンストリームアプリケーションのリクエストをhttp1に変換すると、クッキーの全負荷を送信できるようになりますか? –

+0

あなたはHTTP/2の下でヘッダー圧縮のために意味ですか?もしそうなら、これははいです - それは自動的にHTTP/2サーバを走らせることの一部です。 HTTP/2接続が開いている場合(この場合、サーバーはヘッダー圧縮を管理して解凍できる必要があります)、接続が開かれていないため、元の要求では最初の要求ですべてのCookieを送信してビルドする必要がありますヘッダ圧縮値をアップする。 –

関連する問題