電子書籍の厳選無料作品が豊富!

と言えば,"http://---"(絶対パス)
や,"../index.html"(相対パス)
がありますよね.

ところが,wikipediaの「他言語版」にあるリンクはすべて
"//en.wikipedia.org/wiki/Brain"
と,「http:」を省略したリンクで書かれています.

リンククリックに対しては絶対パスとして反応しますが,対応していないソフト(リンク追跡系)では相対パスとして扱ったりします.

この時何が起こっているかというと,「脳//en.wikipedia.org/wiki/Brain(このページは作成されていません,との表示)」へ誤アクセスしているわけです.

Q.aタグにおけるこの「http:」を省略したurl記法は正式なものですか?
Q.広く使われていますか?
Q.初めて見たのですがいつ頃使われるようになりましたか?

どれへの回答でも,全く別の余談でも結構ですので,なにとぞお願いいたします.

A 回答 (4件)

ちょっとずれた話に感じるかもしれませんが、コーディングルールというものをご存知でしょうか。


いわゆるコーディングをするにあたっての規約です。

零細企業や個人の方はあまり設定されていない場合が多いですが、googleやtwitterなどの大企業はコーディングルールを設けることによってコーディングの効率化を図ります。

その中の一つに、http:を省略するというルールを採用する企業があった気がします。詳細は覚えていませんが、いくらかスピードが早くなるようなことが書かれていた気がします。実際に容量として5Byte稼げるわけですしね。たった5Byteですが、途方もないアクセス量を捌くサーバーにとっては重要な容量だとも思います。

その他にも、属性値のコーテーションを省略するとか、pなど閉じタグを省略できるものは省略するとか、いろいろありますね。もっとも、スピードに関しては、サーバーのチューニングや、画像の最適化、コードの無駄を省いたり、リクエスト数を極限まで減らしたりなど、あらゆる最適化をやって、はじめて効果が出るような些細な効果です。従って、零細企業や個人だとそこまでできないので、結果としてコーディングルールを設定しない場合が多いのかもしれませんね。ただ、チームで制作する場合は、コーディングルールはあったほうがやりやすいですね。

この回答への補足

この補足欄で皆様にお礼申し上げます.
URL記法を定めたRFCの存在をはじめとして,//始まりでリンクを記述するメリットを学ばせて頂きました.
私が使用していたリンク追跡系のフリーウェアはおそらくここまで考慮していなかったのだろうと思います.
皆様ご回答ありがとうございました.

補足日時:2013/10/11 11:17
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます.
特定の企業で採用されるコーディングルールの一部にも,「http:」を省く記法があり得るということですか.ファイルサイズやレスポンススピードにも好影響があるんですね.
勉強になりました.

お礼日時:2013/10/11 10:48

広く使って構わないだろうと考えています。



たとえば下記リンクにあるスクリプト配布の snippet は全て // 始まりです。
<script src="//... ですが,<a href="//... と本質的には同じです。
Google Hosted Libraries - Developer's Guide - Make the Web Faster — Google Developers
https://developers.google.com/speed/libraries/de …

Google や Wikipedia が採用しているから必ずしも良いとは限りませんが,RFC 1738 にも定義されているため,使って問題のあるケースのほうが例外だと考えられます。


ちなみに URL を // で始めたとき,それが http:// と解釈されるとは限りません。
そのリンクの記述のあるページと同じスキームで解釈されるためです。
つまり,https://... のページに // 始まりのリンクがあった場合,それは https:// と解釈されるということです。
ローカルファイルをブラウザで見たときは file:// で始まりますが,そのとき //... は file://... と解釈されます。

先の Google ホスティングの実例では,http でも https でもちゃんとライブラリファイルが手に入るようになっています。
自分のサイトを https で安全に作成した場合に,身元のわからない http による外部ファイルをまぎれ込ませてしまうことを防ぐ目的がある,と思われます。


全くの余談ですが,RFC 3986 にある,URI にマッチする正規表現は,// 始まりに対してもマッチするようになっています。
RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax
http://tools.ietf.org/html/rfc3986#appendix-B
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます.
Googleではあらゆるライブラリに対してユーザからのスキーム「https」でのアクセスに対応しているため,ライブラリをうっかり「http」で呼び出さないように,という意味もあり,スキーマが自動的に同じになる「//」始まりのURLを使っているということですか.
とても勉強になりました.

お礼日時:2013/10/11 11:09

 正直、あまり見ませんが、//は、/と同じようにhttp:プロトコルが同じインターネットそのものをルートとして指定する方法です。


 それに対応していないブラウザは存在しないと断言できます。

>対応していないソフト(リンク追跡系)では相対パスとして扱ったりします.
 バグのあるソフトは・・・・【中略】・・・

 と言うことでしょう。ちなみにfirefoxのscrapbookなどはちゃんと追跡しています。
    • good
    • 0
この回答へのお礼

//と書くと./ではなくhttp://と解釈されるということですかな.
ブラウザ等正式なソフトは対応しているということですかー
ご回答ありがとうございます!

お礼日時:2013/10/04 16:41

> Q.aタグにおけるこの「http:」を省略したurl記法は正式なものですか?


> Q.初めて見たのですがいつ頃使われるようになりましたか?
URLのルールについて定めたRFC 1738にてちゃんと定義されていますので正式なものです。

同様の内容ですが、Wikipediaの「URL」の項目では以下のように記されています。
http://ja.wikipedia.org/wiki/Uniform_Resource_Lo …
--------------------------------------------
httpやftpのような特定のホストにIP接続する類のスキームでは次のような共通の形式が使われている。

//<user>:<password>@<host>:<port>/<url-path>
--------------------------------------------


> Q.広く使われていますか?
これについては私には確かなことは分かりませんが、あまり見かけることはないですね。
    • good
    • 0
この回答へのお礼

迅速なご回答ありがとうございます.助かりました.
httpやftpといった“スキーム名”とやらが,
“RFC 1738”という規格によって,省略可能と定められている,ということでしょうかな.
ざっと見た感じ,専門用語が多くて難しかったのですが.汗

wikipediaより
http://ja.wikipedia.org/wiki/Uniform_Resource_Lo …
rfc規格リスト
http://www5d.biglobe.ne.jp/%257estssk/rfcjlist.h …
RFC 1738 の和訳版
http://www5d.biglobe.ne.jp/%257estssk/nro/rfc173 …

お礼日時:2013/10/04 14:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!