web-dev-qa-db-ja.com

Yandex.MetricaのURLの先頭に「http」が付いていない場合はどうなりますか?

Yandex.Metrica の説明は、Webサイトの所有者が自分のページに挿入しなければならない//mc.yandex.ru/metrika/watch.js(前にhttp:のような)のようなURLは間違いではないことを明示しています。したがって、たとえばこのコード:

<img src="//mc.yandex.ru/watch/00000"
     style="position:absolute; left:-9999px;" alt="" />

大丈夫だと主張されています。

ただし、コードバリデーターはそのようなURLは大丈夫ではないと考えているため、後でコードを「修正」しようとしてコードを壊さないように、バリデーターを幸せにしたいと思います。

これらのURLにhttp:が付加されないのはなぜですか?実際にhttp:を先頭に追加するとどうなりますか?

4
sharptooth

コード検証ツールが間違っていると思います。 URLの一部が欠落している場合、他の部分は親ページから埋められます。たとえば、画像がhttp://example.org/page1.htmlからsrc="pic.jpgで参照されている場合、ブラウザはファイルを取得する前にhttp://example.org/の前にsrc.jpgを追加します。URLのhttp:部分(プロトコル)がない場合、親ページのプロトコルは利用される。

なぜhttp:が付加されないのですか? https://ページがある場合、画像は自動的にhttps経由で配信されるためだと思います。

実際にhttp:を先頭に追加し、httpsページがある場合、ブラウザによっては、ページのコンテンツの一部が安全ではないというエラーメッセージが表示される場合があります。

9
paulmorriss