160

重複の可能性:
2つのスラッシュで始まるURI…どのように動作しますか?スクリプトおよびリンクタグの//として
現在のページの省略形のいずれかを保持するために、プロトコル(スキーム)を省略した絶対URL ?
誰かが前にこれを見て/使用しますか?

次の行に気付いたとき、 HTML5リセットのソースを調べていました。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>

URLが2つのスラッシュで始まるのはなぜですか?これは略記http://ですか?

4

2 に答える 2

241

「2つのスラッシュ」は、「現在のページをロードするために使用されているプロトコルを使用して、参照されるリソースを要求する」の一般的な省略形です。

http「プロトコル相対URL」として最もよく知られているこれらのURLは、要素(例のJSファイルなど)がまたはhttpsコンテキストから提供および/または要求される可能性がある場合に特に役立ちます。プロトコル相対URLを使用することで、実装を回避できます

if (window.location.protocol === 'http:') {
    myResourceUrl = 'http://example.com/my-resource.js';
} else {
    myResourceUrl = 'https://example.com/my-resource.js';
}

コードベース全体のロジックのタイプ(もちろん、サーバーがとの両方をexample.com介してコンテンツを提供できると仮定します)。httphttps

顕著な実例はMagento1.XEコマースエンジンです。パフォーマンス上の理由から、カテゴリと製品ページはhttpデフォルトでプレーンを使用しますが、チェックアウトはhttps有効になっています。

一部のリソース(サイトのヘッダーにあるプロモーションバナーなど)がプロトコル以外の相対URL(つまりhttp://example.com/banner.jpg)を介して参照されている場合、有効なチェックアウトに到達した顧客httpsはかなり不親切に迎えられます

「このページには安全でない要素があります」

プロンプト-これは安全に推測できますが、ビジネスには必ずしも適していません。

ただし、前述のリソースが経由で参照されて//example.com/banner.jpgいる場合、ブラウザは、プレーンなhttp製品/カテゴリページとhttps対応のチェックアウトフローの両方で、適切なプロトコルを介してリソースをロードします。

tl; dr:http / httpsが混在する環境の可能性がわずかでもある場合でも、リソースを参照するためにダブルスラッシュ/プロトコル相対URLを使用します—それらを提供するホストがhttpとhttpsの両方をサポートしていると仮定します。

于 2012-03-10T12:31:40.877 に答える
14

リクエストの方法に応じて、httpsまたはhttpが自動的に追加されます。

于 2012-03-10T12:31:51.673 に答える