2015-12-07 12 views
7

私はそれを尋ねる方法を正確には分かりませんので、例を挙げて説明します。HTTP/2とCNAMEはどのように連携しますか?

私はexample.comにこれらのリソースを持っている、HTTP/2対応サーバー:

//example.com/css/file.css 
//example.com/js/file.js 
//example.com/images/file.png 

私が欲しいものは、ドメインexample.comを指すエイリアスドメインcdn.example2.comを通じてこれらのファイルのいずれかをロードすることです。だから、HTML内の実際のリソースは次のようになります。ここ

//example.com/css/file.css 
//cdn.example2.com/js/file.js -> points to //example.com/js/file.js 
//example.com/images/file.png 

私の質問は:いいえがある場合、彼らはロードされますように、第2の例では、すべてのリソースは、単一の接続を介してブラウザによってロードされなければなりませんエイリアスドメイン?

ありがとうございました。

答えて

4

エイリアスは異なるIPアドレスに解決される場合は、リソースが同じ接続(私は間違っていない場合は、HTTP/2による「再利用コネクション」と呼ばれる)の上にロードすることができる方法はありません。それはここからのCDNの問題です。

あなたの心に安らぎを感じ、CDNの喜びを味わうために、接続の再利用は難しいことです。問題の場合と同じように、すべてのドメインが同じIPに解決されたとしても、将来性的には

、あなたのサイトが再利用の接続を可能にするために、証明書の拡張configured correctlyを持っていることを確認することをお勧めします。 Firefoxとクロームの現在のバージョンでは

は、私も、細心の注意で証明書を作り上げた後、再利用の接続を観察し、そしてもちろん、2つのドメインが同じIPを指していることを確認されていません。

や思考のためのちょうどいくつかの食べ物:接続をopenning場合にのみ発生TLS requires SNI、オーバーHTTP/2。したがって、初めてexample.comという1つのドメインに接続すると、サーバーはSNIデータを取得します。しかし、同じ接続がcdn.example.comに要求を送信するために再利用された場合、サーバーはそのようなデータを取得しません。サーバや使用シナリオの中には、この非対称性に敏感で、ブラウザが接続を再利用する(またはしない)方法と関係するものがあります。しかし、これらは本当にあなただけの推測です...

+0

私の例のエイリアスは、常に同じIPに解決されます。彼らは? –

+0

あなたは正しいです、今すぐ修正してください。 – dsign

+0

私は技術的には可能ですが、現在実装されていません。私は正しい? –

4

この仕様では、再利用は必要ありませんが、同じIPアドレスに解決される2つのホストなど、再利用が許容されるときの情報が明示的に含まれています。オリジンサーバに対して行われ

https://tools.ietf.org/html/rfc7540#section-9.1.1

接続、直接またはトンネル経由
複数の異なるURI権限の要求のために再利用することができる
、(セクション8.3)CONNECTメソッドを使用して作成
コンポーネント。オリジンサーバ
が信頼できるものである限り、接続は再利用できます(第10.1項)。 TLSのないTCP接続の場合、
これは、同じIPアドレスに解決されたホストによって異なります。

"https"リソースの場合、URIのホストに対して有効な証明書を持つ
にも接続の再利用が依存します。サーバが提示する
証明書は、
クライアントがホストの新しいTLS接続をURIで作成するときに実行するチェックをすべて満たしていなければならない(MUST)。

関連する問題