2012-01-21 10 views
29

リンクのhref属性にhttp/httpsプロトコルを含める理由はありますか? html - httpプロトコルを使用しないリンク

は、それをオフのままに罰金のようになります。

<a href="example.com">my site</a> 
+0

ありがとう@ガース良い説明! –

+7

リンクを外部に移動させるURLの部分は、//プロトコルではありません。プロトコルは、コンピュータにリンク上でどのデバイスを使用するかを指示します。 「http://example.com」、https://example.com、ftp://example.com、または//example.comにリンクすることができます。後者は、現在のクライアントのプロトコル(通常はブラウザhttp/httpsですが、電子メールクライアントなど)を使用する必要があり、httpプロトコルとhttpsプロトコルの両方を実行しているサイトを考える場合は非常に便利です。 –

答えて

84

「http:」または「https:」の部分は部分的に伝統的な問題ですが、部分的にはプロトコルを実際に指定することの問題です。デフォルトの場合、現在のページのプロトコルが使用されます。例えば//www.example.comは、参照ページのURLに応じてhttp://www.example.comまたはhttps://www.example.comになります。 Webページがローカルディスクに保存されてそこから開かれた場合、Webページはプロトコル(疑似プロトコルのファイルのみ)を持たないため、//www.example.comのようなURLは機能しません。 「http:」または「https:」の部分を含む理由の1つがここにあります。

「//」部分も省略すると、URLを相対URLに変換するという全く別の問題です。このURLは、現在のベースURLとの相対的な解釈として解釈されます。

ブラウザのアドレス行に入力または貼り付けたときにwww.example.comが動作するのは、相対URLがそこに意味をなさない(関連するベースURLがない)ため、ブラウザベンダーは、 http:// "という接頭辞があります。

-1

HTTPを使用しない、それは相対URLを取るだろう。外部URLを指す必要がある場合は、httpを指定する必要があります。そうでない場合は、ローカルリソースを取得しようとします。

だから、どこにポイントしたいかによって異なります。

+6

Falseです。 "//www.example.com/blah/blah"のように "//"で始まるプロトコルを使用しないでホストを指定することができます – NVRAM

+0

リンクはhttp(または//)のない相対パスとみなされます。 @NVRAMが指摘しているように)。私はURLをチェックし、 "http"が含まれていない場合は "//"を挿入することで問題を解決することができました。これはうまくいった。お二人のおかげで –

1

hrefのURLは、HTTPドキュメントだけに限定されません。

また、URL名に '#'を付けると、ページの内部でhtml idにリンクすることができます。相対URLとみなされるプロトコルなしで、名前またはディレクトリパスだけを指定することができます。

関連する問題