web-dev-qa-db-ja.com

なぜプロトコル相対URLを使用するのですか?

これが何を意味するのかについては、StackOverflowでよく議論される質問です。

 <script src="//cdn.example.com/somewhere/something.js"></script>

これにより、HTTPS経由でアクセスしている場合に、恐ろしい "このページの安全でない要素"警告ではなく、HTTPSが自動的に取得されるという利点があります。

しかし、なぜプロトコル相対URLを使用するのでしょうか。 CDN URLで常にHTTPSを使用しないのはなぜですか?結局のところ、HTTPSを介してページの一部をロードすることにした場合、HTTPページに文句を言う理由はありません。

(これはCDNの場合に特に当てはまります。ほとんどすべてのCDNにHTTPS機能があります。一方、独自のサーバーは必ずしもHTTPSを備えているとは限りません。)

31
oink

2014年12月現在、 プロトコル相対URLに関するポールアイリッシュのブログ はこう述べています。

2014.12.17:すべての人にSSLが推奨され、パフォーマンスへの懸念がないため、この手法はアンチパターンになりました。必要なアセットがSSLで利用できる場合、alwayshttps://アセットを使用します。

特定のパフォーマンスの懸念がない場合(Zakjanの回答で言及されている遅いモバイルネットワークなど)は、https://を使用してユーザーを保護する必要があります。

37
Joe

パフォーマンスのため。 HTTPS接続の確立には、HTTPよりもはるかに長い時間がかかります。TLSハンドシェイクにより、最大2つの遅延遅延が追加されます [〜#〜] rtt [〜#〜] s。あなたはそれをモバイルネットワークで気づくことができます。そのため、必要がない場合はHTTPSアセットURLを使用しない方が良いでしょう。

7
zakjan

CSPの upgrade-insecure-requests 、プロトコルにとらわれないURL(//example.com)。

0
Malvoz

いくつかの潜在的な理由がありますが、それらはすべて特に重要ではありません。

  • 議題のあるすべてのビジネスが新しいプロトコルを次にプッシュするときはどうですか?では、何千もの文字列をもう一度交換する必要があるのでしょうか。結構です。
  • HTTPSは同じバージョンのHTTPよりも遅い
  • HTTP-2の caniuse.comに記載されているメモ のいずれかに問題がある場合
  • 概念的には、サーバーがプロトコルを実施する場合、そもそもそれを特定する理由はありません。不可知論はそれが何であるかです。すべての拠点をカバーしています。
0
Jan Kyu Peblik