「http | https」のないURL


89

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

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

<a href="https://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とIE8でテストしたところ、両方で機能しました。これは標準の一部ですか、それとももっと多くのブラウザをテストする必要がありますか?



1
参考までに(検索する用語を尋ねたので)、元のStackOverflowの質問に私を導いたGoogle検索は次のとおりでした:「プロトコルなしの絶対URL」
David

httpまたはhttpsのどちらであるかを指定していないため、ブラウザは、リンクが同じページからのものであると想定して最後のページを取得することで決定します。
raym0nd 2012

Davidに感謝します、複製へのリンクは私のすべての質問に答えました
topher-j 2012

1
@David:正確には、プロトコルがない場合は絶対URLとは呼ばないでしょう。むしろ相対URLです。
ガンボ2012

回答:



15

それが呼び出され、ネットワークパス参照(欠落している部分が呼び出されscheme又はprotocolRFC3986のセクション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」など)を付ける必要があります。


// htmlのベースタグでは使用できません。<base href = "// abc.com/"と相対画像のURL <img src = "/ img / logo.jpg>を設定しましたが、ブラウザで開くと、画像のリンクはfile:/// abcになります。 com / img / logo.jpg。回避策はありますか?
Scott Chu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.