web-dev-qa-db-ja.com

「http | https」のないURL

同僚から、リンク内のURLの「http | https」の部分を省略すると、そのURLが使用しているページのスキームを使用することを知りました。

たとえば、私のページが http://www.example.com でアクセスされ、リンクがある場合(前面に「//」があることに注意してください):

<a href="//www.google.com">Google</a>

そのリンクは http://www.google.com に移動します。

しかし、同じリンクで https://www.example.com のページにアクセスすると、 https://www.google.com に移動します

これについての詳細をオンラインで見たかったのですが、良い検索フレーズを考えるのに苦労しています。 「HTTPを使用しないURL」を検索すると、返されるページは「www.example.com」という形式のURLに関するものであり、探しているものではありません。

それをスキームレスURLと呼びますか?プロトコルなしのURL?

これはすべてのブラウザで機能しますか? FFでテストし、IE 8で、両方で動作しました。これは標準の一部ですか、それとももっと多くのブラウザをテストする必要がありますか?

76
topher-j

プロトコル相対URL

一部のブラウザでは、異常なセキュリティ警告が表示される場合があります。

簡潔な定義については、 Wikipedia Protocol-relative URLs もご覧ください。

一度に、 推奨されました ;しかし、今後、 回避する必要があります 。 StackOverflowの質問も参照してください なぜプロトコル相対URLを使用するのですか?

67
Mark Maruska

network-path referenceと呼ばれます(欠落している部分はschemeまたはprotocolと呼ばれます) RFC3986セクション4.2で定義

4.2相対参照

相対参照は、階層構文(セクション1.2.3)を利用して、別の階層URIの名前空間に対するURI参照を表現します。

  relative-ref  = relative-part [ "?" query ] [ "#" fragment ]

  relative-part = "//" authority path-abempty
                / path-absolute
                / path-noscheme
                / path-empty

ターゲットURIとも呼ばれる相対参照によって参照されるURIは、セクション5の参照解決アルゴリズムを適用することによって取得されます。

2つのスラッシュ文字で始まる相対参照は、ネットワークパス参照(強調強調)と呼ばれます。そのような参照はめったに使用されません。単一のスラッシュ文字で始まる相対参照は、絶対パス参照と呼ばれます。スラッシュ文字で始まらない相対参照は、相対パス参照と呼ばれます。

コロン文字(たとえば、「this:that」)を含むパスセグメントは、スキーム名と間違われるため、相対パス参照の最初のセグメントとして使用できません。相対パス参照を作成するには、そのようなセグメントの前にドットセグメント(例: "./this:that")を付ける必要があります。

13