browser – ファイルの URL が 3 つのスラッシュで始まるのはなぜですか?

browser filesystems url

HTTPは2つのスラッシュで始まります。例: http://example.com

FTPも同じです。例:ftp://example.com

ただし、ファイルの「URL」は3つのスラッシュで始まります。例えば、クロームを使ってpdfファイルを読む場合、URLはfile:///D:/Desktop/Book.pdfになります

ファイルのURLはなぜ3つのスラッシュを使うのですか?

  193  Pacerier  2011-10-30


ベストアンサー

他の人が述べているように、ファイルスキーマは “file://<host>/<path>” という形式になっています。ほとんどのブラウザは2つのスラッシュだけで問題はありませんが、その通りです

トリプルスラッシュと「localhost」キーワードは、有効な URI/URL 構文への適合性を保証するためだけに存在します。ファイルスキーマのコンテキストでは、ホストは明示的な転送プロトコルやサーバのドキュメントパスなしでファイルシステムから直接ロードされるので、意味がありません。HTTPではないので、理論的には複数のローカルバーチャルホストを設定することができる標準的なウェブサーバからはロードできません。また、ブラウザは “file:///volumes/foo” のようなボリューム名を使用するだけなので、技術的には別の “ホスト” である標準的なネットワークボリュームからはロードできません。最後に、”file://example.com/some/file” のようなものを試してもうまくいきません。外部ホストをサポートする理由があるのでしょうが、思いつきません

IETFは現在、トリプルスラッシュの要件を削除するための変更を草案化していますが、草案にはfile:c|/pathfile://///host.example.com/pathのような奇妙な可能性もいくつか追加されています

The file URI Scheme
This document specifies the "file" Uniform Resource Identifier (URI) scheme, obsoleting the definition in RFC 1738. It attempts to define a common core which is...

“本仕様書では、非ローカルファイルへのアクセスの仕組みを定義したり、禁止したりするものではない。”

18  Beejor  2015-09-11


完全な構文はfile://host/pathです

ホストがlocalhostの場合は省略でき、結果としてfile:///pathとなります

RFC 1738 – 統一されたリソースロケータ (URL)を参照してください

ファイルのURLの形式は以下のようになります

file://<host>/<path>

[…]

特殊なケースとして、<host>には文字列 “localhost “か空文字列を指定することができます; これは「URLが解釈されるマシン」と解釈されます

262  Dennis  2011-10-30


デニスは3番目のスラッシュを説明していますが、hostpathを分離するために必要なのですが、他の2つはもっと面白いですね

それは、それらがURLの構文に加えられた無用な、やや恣意的なものであることが判明したのです。World Wide Web の発明者であり、その標準規格の多くの著者である Tim Berners-Lee (デニスがリンクした RFC を含む) は、2009年のインタビューで「ダブルスラッシュ」の使用法を嘆いていました

ダブルスラッシュは、当時のプログラミング上の慣習ではあったが、実際には必要ないことが判明した、とバーナーズ・リー氏は説明する。人々が何年にもわたって紙にスラッシュを書いたりタイプしたりする必要がなければ、紙や木を節約できたかもしれない、とバーナーズ・リー氏は言う

The Web's Inventor Regrets One Small Thing
Tim Berners-Lee, the creator of the Web, would change one small thing about it. He also discussed the current push to put more government data online.

ですから、18年前のちょっとした(そして特徴のない)先見の明の欠如を除けば、あなたのファイルのURLはfile:///D:/Desktop/Book.pdfではなくfile:/D:/Desktop/Book.pdfにすることができました

ご質問にお答えすると、URLにスラッシュが3つあるのには何の理由もありません


更新: @ComFreekさんがコメントで指摘しているように、2017年現在、上記のfile:/D:/...の例が有効になっています!これは RFC 8089 のおかげです

RFC1738]の定義によると、ファイルURLは常にトークン「file://」で始まり、(オプションで空白の)ホスト名と「/」が続く。セクション2で与えられた構文は、ダブルスラッシュ「//」を含む権限コンポーネント全体をオプシ ョンにする

生きているとはこのことだ

30  Molomby  2012-09-25


タイトルとURLをコピーしました