- ベストアンサー
絶対パス?絶対アドレス?意味に違いはありますか?
基本的なことをお聞きします。 「絶対パス」と「絶対アドレス」という言葉がありますが、 両者は、同じような意味で使われている場合もあれば、 異なるように感じる場合もあり、一体、どういうことなのかよく分からないので、 どなたか、ご存知でしたら教えて下さい。 よろしくお願い致します。
- みんなの回答 (14)
- 専門家の回答
質問者が選んだベストアンサー
ひょっとして、下の例にあった「./img/hogehoge.gif」と、私が書いた「/img/hogehoge.gif」を見間違われているのではないでしょうか? 半角スラッシュで始まる「/img/hogehoge.gif」は「(http://現在のホスト)/img/hogehoge.gif」と解釈されます。 この場合、ホストを移転すればURIの指す位置が変わるため、「相対URI」です。 一方、ホスト内に限定すれば最上位から順にパスを指定しているため、「絶対パス」だと言えます。 普通Web開発では開発と運用は別ホストとなるので、HTML内の「絶対パス」は通常この形式です。 「相対パス」と呼ぶことはありません。 一方、「./img/hogehoge.gif」や「img/hogehoge.gif」などの場合は「(現在のディレクトリ)/img/hogehoge.gif」となり、現在位置に依存するので「相対パス」です。 勘違いだと思いますが念のため。
その他の回答 (13)
- mdp36
- ベストアンサー率72% (26/36)
No.3です。 名前が出ましたので、他の方との重複もあると思いますが、下で書いたことの解説を。 まず、HTMLのhrefやsrcに記述するのはすべてURIであると定められています。 それから、「スキーム://ホスト/URLパス」の形式のURI(Common Internet Schemeと言います)では、スキームやホストを省略した「相対URI」が許されています。 つまり、HTMLの属性値に書いてある「/img/hogehoge.gif」(絶対パス)や「hogehoge.gif」(相対パス)は相対URIとなります。 「パス」は明確な意味のある用語で、間違った用法ではないのですが、URIやHTMLの正式な定義ではありません。 「アドレス」はニュアンスだけで使われている言葉です。 また、「相対アドレス」を使用するのはメモリ関係ぐらいだと思いますので、「絶対アドレス」はお勧めしません。
お礼
わざわざ、どうもありがとうございます。 専門家の匂いがプンプン漂っておりましたので、 また回答を頂けたら嬉しいなと密かに思っておりました。 >HTMLの属性値に書いてある「/img/hogehoge.gif」(絶対パス)や「hogehoge.gif」(相対パス)は相対URIとなります。 「/img/hogehoge.gif」(絶対パス) これは、相対パスではなく、絶対パスだったのですか…。 ガーン。 というか、もう、何が何やら~の状態。笑 絶対アドレスという言葉は使わないようにしますので、 ご安心下さい。 アドレスという言葉も、メールの時くらいしか普段は使っていませんね。 で、やはり、これですが…、 「/img/hogehoge.gif」(絶対パス) 「/img/hogehoge.gif」のような書式を、 ネット上などでは、相対パス、と書かれていることは多いと思いますが、 多数派の方が間違っている、ということなのでしょうか?苦笑 その辺は、どうお考えでしょうか。 もしよろしければ、こっそり教えて下さい。
- hogehoge78
- ベストアンサー率80% (433/539)
その解釈でよろしいかと思います。 後は、数学的な意味でも一般的な意味でも、「絶対値」とは何を指し示すか、「相対値」とは何を指し示すか、というのが何なのか分かっていれば、絶対パス、相対パスという言葉が何を指し示すかも判りやすいのかなと思います。 >日本語を操ることの難しさを痛感しております。 同感です。
お礼
冗長な文章を読んで頂き、ありがとうございます。 モヤモヤしたものが9割ほど晴れた気がしております。 回答NO.3で回答された方の考えと、 私が現在理解しているものとが、 どの程度整合しているのか、 やや気になるところではありますが、 今回理解できたことをもとに、 以後、読んだり書いたりしていきたいと思います。 なお、今後の質問の中で、 もし、私がおかしな使い方をしているの見かけることがございましたら、 その都度、ご指摘頂けると嬉しく思います。 >同感です。 全く、申し訳ないです。^^; より厳密に、より一意的に、より簡潔明瞭に、 文章を書けるように、努めて参りたいと思います。 以上、長いお付き合い、どうもありがとうございました。(^^
- hogehoge78
- ベストアンサー率80% (433/539)
私が、★(1)で指し示したものが、URLに対しての相対パスを説明しているもので、HTML上のsrc属性やhref属性に、「./」や「../」で引いてきた値は、サーバにおいてある保管場所を直接指し示しているわけではなくて、その実行されているHTMLから見た実行すべきファイルの場所をURLで指し示していることになるのですが、分かりづらいですか。 <img src="./img/hogehoge.gif" /> これは、「http://www.example.com/img/hogehoge.gif」を指し示しているのであって、「/home/user/public_html/img/hogehoge.gif」を指し示しているわけではありません。
補足
//****************************************** 以下、ホゲホゲさんから頂いた文章をナゾル形で、 補足をさせて頂きます。 「引用符(>)」を入れずに書くため、若干分かりにくいかもしれませんが、よろしくお願い致します。 (注) //-------------------- ~~~march4の文~~~ ---------------------// //********************* ~~~march4の文~~~ *********************// では、スタート! 「URLに対しての相対パス。」 これが意味する所は、 http://www.example.com/img/hogehoge.gif というURL に対しての 相対パスが、「/img/hogehoge.gif」。 ということでしょうか。 (たぶん、誤解は無いと思いますので、次へ) ******************************************// (引用) HTML上のsrc属性やhref属性に、「./」や「../」で引いてきた値 //========================================= つまり、 「./img/hogehoge.gif」のような値(アドレス) ==========================================// はサーバにおいてある保管場所を直接 //========================================== 保管場所を直接 つまり、 http://www.example.com/img/hogehoge.gif というパス書式(つまり、URL)で直接、 ==========================================// 指し示しているわけではなくて、 その実行されているHTML //========================================== つまり、 (ここでの例で言えば)index.html というhtmlファイル ==========================================// から見た 実行すべきファイル //========================================== つまり、 「hogehoge.gif」 ==========================================// の場所を 『URLで指し示していることになる』のですが、分かりづらいですか。 //****************************************** 最後の、『URLで指し示していることになる』という箇所。 ここですね、私の中での爆弾は。 「./img/hogehoge.gif」という相対パスは、 結果的に、URLに変換される、という意味で、 『URLで指し示している』と仰っているのでしょうか。 「./img/hogehoge.gif」自体は、URLではないですものね? (「http://」で始まるアドレスではないという理由でURLとは言えない、という意味で。) 「URLで指し示している」、という文が意味することは、 「./img/hogehoge.gif」という形で指し示している、のではなく、 「http://www.example.com/img/hogehoge.gif」という形で指し示している、 ということなのでしょうけれども、 HTMLを見ると、 <img src="./img/hogehoge.gif" /> と、書かれており、 これは、URLでの記述ではないなぁ…、と混乱してしまっているわけです。 で、上にちょこっと書きましたが、 --------------------------------------- 「./img/hogehoge.gif」という相対パスは、 結果的に、URLに変換される、という意味で、 --------------------------------------- つまり、「結果的に変換されるパス書式」 という概念がありそうだな、と。 で、それに関する説明が下記なんだろうな、と。 ******************************************// (引用) <img src="./img/hogehoge.gif" /> これは、 「http://www.example.com/img/hogehoge.gif」を指し示しているのであって、 「/home/user/public_html/img/hogehoge.gif」を指し示しているわけではありません。 //****************************************** 「./img/hogehoge.gif」とHTMLでは書いているけれども、 実際には、「./img/hogehoge.gif」は、 「http://www.example.com/img/hogehoge.gif」を指し示しているのであって、 「http://www.example.com/img/hogehoge.gif」はつまり、URLだから、 「./img/hogehoge.gif」はURLなんだよ、と。 で、このときのURLこそ、私がなかなか理解できなかった、 「相対パス」であるURL なんだよ、と。 (引用・参考) URLに対しても「絶対パス」「相対パス」といいます。 と、このように解釈しましたが、いかがでしょう? 日本語を操ることの難しさを痛感しております。笑 またしても、ご迷惑をお掛けしておりますが、 どうぞよろしくお願い致します。 (※毎度のことながら、デバグの様な作業をお願いしてしまって、ごめんなさい。笑) ******************************************//
- hogehoge78
- ベストアンサー率80% (433/539)
>例えば、 >http://example.com/ >というURLは、絶対パス、相対パス、どちらになるのでしょうか。 絶対パスです。 >■URLにおける相対パス >http://~○○ →どんなのになりますか?? 何か、ちゃんと理解されていないようですが、 相対パスというのは、指し示したいファイルから見た相対的なパスを引くことを言うものです。 例) /home/user/public_html/img/hogehoge.gif(ファイルシステム上存在しているファイルの所在) http://www.example.com/img/hogehoge.gif(Web上に存在しているファイルの所在) -----(/home/user/public_html/index.html)------ <html><body> <img src="./img/hogehoge.gif" />★(1) </body></html> -----(/home/user/public_html/index.php)------ <?php $img = file_get_contents('./img/hogehoge.gif');//★(2) ?> 両方とも、ファイルの所在を相対パスで指し示しています。 ★(1)のほうは、コレを絶対パスに直した場合、「http://www.example.com/img/hogehoge.gif」を引いてることになります。つまり、「index.htmlからhogehoge.gifを見たURLでの相対パス」を参照しています。 ★(2) 「/home/user/public_html/img/hogehoge.gif」を引いていることになります。つまり、「index.phpからhogehoge.gifを見たファイルシステムでの相対パス」を参照しています。 絶対パスとは、どこからみても、必ずそこにある場所を指します。 相対パスとは、自分自身で決めた場所(上記の例だとindex.html/index.php)からみて、必ずそこにある場所を指します。
お礼
丁寧にご指導頂きありがとうございます。 今回書いて頂いたことは、ほぼ全て理解していた内容だったので、 恐らく、私が理解できていない箇所が、ホゲホゲさんに伝わっていないのだろうと思い、とても申し訳なく思いました。^^; 私の中では、URLとは、http://で始まるもので、 この、http://で書かれたアドレスというのは、 常に、絶対的なもの、として理解しているのですが、 ホゲホゲさんの回答NO.8にありました、 「URLもファイル、ディレクトリのパスを指し示すものなので、URLに対しても「絶対パス」「相対パス」といいます。」 という箇所にある、 「URLに対しても~「相対パス」と言います」 という部分の意味が分からなかったので、 繰り返し、質問をさせて頂いた次第です。 URLに対して、「相対パス」と言うときは、 どういう時なのか、 言い換えれば、 http://で始まるアドレス(つまり、URL)に対して、 「相対パス」と言うときは、 どういう時なのか、 と、思ったわけです。 先ほど書きましたが、私の中では、 http://で始まるアドレス(つまり、URL)は常に絶対的なアドレスとして 理解しているので、 「相対パス」と言われるシチュエーションが想像できなかったわけです。 なんとなくですが、 この辺りの、ホゲホゲさんと私の認識はおそらく一致している気はするのですが、 この、「URLに対しても~「相対パス」と言います」の箇所だけ、 どのようなことを意味するのか、 私は理解できずにおりまして、繰り返し質問をさせて頂きました。 何度も、本当にすみません。><
- hogehoge78
- ベストアンサー率80% (433/539)
>えっと、これはどういったニュアンスの説明でしょうか。 ニュアンス、とは? ファイルやディレクトリをセパレータを用いて指し示しているもののことを、「パス」と表記するというのが一般的という、前提のもと、 URLも上記のような定義の書式なので、URLもまた「パス」と表現されます。 >で、その上で、URLには、絶対パスと、相対パスがあると。 >つまり、「http://~」の意味(書き方?)に、 >絶対パス形式と、相対パス形式がある、 日本国内において、「ポスト」と表記されていたら、通念上「赤くて四角いアイツ」を思い浮かべるかと思いますが、いかがでしょう。 海外では赤くないものが一般的なのかもしれないので、その場合は、「赤いポスト」と表現すると思います。 URLのことについて話しているという前提が既に確立しているのであれば、その中に、ただ「URL」と記載されていたら「http://」からはじまる物を思い浮かべるでしょうから、わざわざ「絶対URL」とか「URLを絶対パスで」というように表現はあまりしないんじゃないですか? 相対パスの話が前段階で何度も出てきたりした場合は、「URLを絶対パスで記述する」と表現するとは思いますが。
お礼
またしても、ありがとうございます。 補足が長くなると、誤解を招きやすくもなりそうなので、 ここでは短めに、スッキリ書いてみます。 URLには絶対パスと、相対パスがある、 ということでしたが、 絶対パスと相対パスの違いって何なのでしょう? というのが前回の補足の中での質問でした。 例えば、 http://example.com/ というURLは、絶対パス、相対パス、どちらになるのでしょうか。 この答えは、 その時の「見方」によって変わるという類のものなのか、それとも、 「見方」とかは関係なく、書式的に判断して、普遍的かつ確実にどちらかに分類される類のものなのか、どちらなのでしょう? >相対パスの話が前段階で何度も出てきたりした場合は、「URLを絶対パスで記述する」と表現するとは思いますが。 ここで言われている「相対パス」というのは、 「URLの相対パス」という意味でしょうか? 以上、 うまく伝わると良いのですが。^^;
補足
ちょっと補足を。 WEB関連における一般的な意味での、絶対パス、相対パス、 それぞれの例を挙げると、 -------------------------------------------------------- ■絶対パス /hogehoge/user_id/public_html/example.com/db_test.sqlite ■相対パス ../../db_test.sqlite -------------------------------------------------------- こんな感じでしょうか。(ここまでは、問題ありません) で、 >URLもファイル、ディレクトリのパスを指し示すものなので、URLに対しても「絶対パス」「相対パス」といいます。 ということを受け、 URLにおける、絶対パス、相対パス、という概念について、 今、気になっております。 URLと言ったら、一般的に、「http://」で始まるもの、ということで、 私とホゲホゲさんの間では認識の一致が見られているかと思いますが、 -------------------------------------------------------- ■URLにおける絶対パス http://~△△ →どんなのになりますか?? ■URLにおける相対パス http://~○○ →どんなのになりますか?? -------------------------------------------------------- これがわからない…、わけです。^^; 前回の補足の中で私が質問していた内容はこのような事でしたが、 分かりにくかったかもしれませんね。^^; 以上、何かの参考になればと思います。
- hogehoge78
- ベストアンサー率80% (433/539)
【B】の方法は取れません。 >URLは、絶対パスとか、相対パスに分類することはできないのでしょうか? 通念上、「URLを記入する」といった場合に、相対値を書く人はいないので、URLと書いてあったら「http://から始まるもの」を記入すると思います。 また、URLもファイル、ディレクトリのパスを指し示すものなので、URLに対しても「絶対パス」「相対パス」といいます。 HTMLの解説をしている参考書やサイトなどでそのように出てきたら当然URLについての絶対値か、URLについての相対値についていっていると認識します。 PHPはPHPでHTMLを生成することもあり、どちらのことについていっているのか分かりづらいこともあるかもしれませんが、PHPの説明上で、特に断り無く「絶対パス(フルパス)」「相対パス」と出てきたら、サーバのファイルやディレクトリのことを指し示す言葉と認識するんじゃないでしょうか。
お礼
>【B】の方法は取れません。 まず、この点の確認ができまして、助かりました。 どうもありがとうございます。 例では、sqlite_open()関数を出しましたが、 私が気になっている関数は、実は他の関数なのです。 で、その関数の動作の謎については、 別途質問をさせて頂こうと思っております。 >URLと書いてあったら「http://から始まるもの」を記入すると思います。 そうですよね、ここまでは素直に頷けます。 >また、URLもファイル、ディレクトリのパスを指し示すものなので、URLに対しても「絶対パス」「相対パス」といいます。 えっと、これはどういったニュアンスの説明でしょうか。 同じURLでも、捉え方(観点)によって、 絶対パスと言ったり、相対パスと言ったりする、 といったニュアンスでしょうか。 その場合の捉え方(観点)とはいかに?! それとも、 物理的に書き方が異なるという意味で、 絶対パス、相対パスに、分類され得る、 といったニュアンスでしょうか。 ただ、その場合の物理的な書き分けというのは、 どういったものになるのでしょうね。 はたまた、上の二つのニュアンスのどちらでもない、 ということも考えられます。 どれが正解なんでしょう…。 URLと言われたら、「http://~」という形であるのは、 確実な話なのだろうと思います。 で、その上で、URLには、絶対パスと、相対パスがあると。 つまり、「http://~」の意味(書き方?)に、 絶対パス形式と、相対パス形式がある、 のだろうか?と。 変なことを言っていたら、ごめんなさい。笑 >PHPの説明上で、特に断り無く「絶対パス(フルパス)」「相対パス」と出てきたら、サーバのファイルやディレクトリのことを指し示す言葉と認識するんじゃないでしょうか。 はい、この点は、今後、このように理解するように致します。^^
- hogehoge78
- ベストアンサー率80% (433/539)
アドレスという言葉に対して私が言いたかったのは、 アドレスっていうのは番地とか所在を示す言葉ってだけです。 URIもアドレスですし URLもアドレスですし URNもアドレスですし パスもアドレスのことです。 それぞれがアドレスをある一つ(ないしはいくつか)のことについて狭義的に表現した専用の単語ってだけです。 その中で「絶対アドレス」という言葉は専門用語として存在しないと、aigaionさんは仰ってたのではないでしょうか。 前回の回答で提示した参考URLを見ても分かるとおり、 ファイルやディレクトリの所在を示す場合は「パス」という言葉があるわけですから、 正確にものを伝えるならアドレスといわずに「パス」と表現するでしょう。 単純にそれだけの話だと思いますが、いかがでしょう。 >【1】と【3】 >の呼び分け、の仕方についてです。 これは、【1】は「URL」です。ただ単純に「URL」と記述した場合にソレは「絶対値なのか相対値なのか」と悩む人は居ないです。 また、PHPの組み込み関数において、URLを相対パスで記述させる引数を持つものは存在しないと思います。 【3】は「絶対パス」です。先頭に「/」と置いたのであれば、Linuxでははルートを指し示します。 書いてみてレスを見直してみたら、riririri1さんとおんなじこと言ってますね・・・
お礼
>アドレスっていうのは番地とか所在を示す言葉ってだけです。 私が考えていたアドレスというのは、 完成形のもののみでした。笑 例えば、http://example.com/sample.htmlと言ったような。 なので、私の中では、 例えば、../sample.html等は、 アドレスとは思っていませんでした。 (あぁ…、私はまた何か変なことを言ってそうですよねぇ…。^^;) >PHPの組み込み関数において、URLを相対パスで記述させる引数を持つものは存在しないと思います。 ここ、重要な気がします! えっと、以下、粗い書き方になりますが、宜しくお願いいたします。 例えば、 http://example.com/index.php のファイル内で、 index.phpと同階層に置いてあるdb_test.sqliteファイルに アクセスする場合、 【A】$db_res = sqlite_open('/hogehoge/user_id/public_html/example.com/db_test.sqlite'); と、 【B】$db_res = sqlite_open('http://example.com/db_test.sqlite'); と、 【C】$db_res = sqlite_open('db_test.sqlite'); という書き方が頭に浮かぶのですが、 【A】は絶対パスにアクセス、 【B】はURLにアクセス 【C】は相対パスにアクセス 【A】と【C】で動作するのは確認が取れていますが、 【B】のような書き方はダメでしたでしょうか? (初歩的なことをお聞きしていますよね…。) >【1】は「URL」です。ただ単純に「URL」と記述した場合にソレは「絶対値なのか相対値なのか」と悩む人は居ないです。 【B】のような、つまり、URLは、 絶対パスとか、相対パスに分類することはできないのでしょうか? URLが絶対か相対かを知ることには、それほど大きな意味はないのでしょうけれど、気になってしまって。苦笑 ★【B】、つまりURLは、考え方の枠組みが、【A】や【C】とは違うのでしょうか?? このあたり、長年の疑問でした…。
色んな考えがあるのですね~ どっちも同じ物を違う呼び方してますよね~確かに。 私の場合、ブラウザでアドレスを表示ってメニューでURLが表示されるので、アドレスと言うとメールサーバーのメールアドレスとか、ホームページのアドレスって思います。 C言語とかでアドレスって言うと「C:\」とかではなく16進数とかの数字を思い浮かべます。 パスって言うと、今度はWINDOWSのファイルを表示するエクスプローラでメニューにパスを表示ってあるのでパスと言うとOSが認識する場所を指すって思います。 なのでフルパスとか言うとドライブ名を含めるし、絶対パスはフルパスのことねって思います。 メールアドレスやサイトのアドレスをパスと言うと、今度は外国人的なスペルって感じに捉えます。 なので、住所って言えば「東京都・・・」を答えるし、アドレス教えて!と言うと、メールで良い?サイトの方?って感じだし。 パスは?って聞かれると文字を知りたいのねっ?スペルを答えます。 アドレスって言ってもパスって言っても伝われば良いので、どちらが専門的でもないと思います。なんとなく使い別けてて、メールアドレスは?とは言ってもメールパスは?とは言わないですが~
お礼
アドレスという言葉は、 専門家と一般人の間で、使用の際に想定されている定義に、 かなり隔たりを感じる言葉だなと、思っておりましたが、 上には上が居て、ではありませんが、 専門家の上にも、さらに強力な専門家がいらっしゃるようで、 アドレスだけでなく、URLについても、 同様のことが言えることが今回よく分かりました。 (ちなみに私は、URI,URL,URN UR3兄弟の理解に失敗しました。涙) このように、曖昧に使われ、 コンピュータでは埋められない、言葉の解釈のズレなどを人間は適宜修正をしながら理解しているということを、 riririri1さんのお話から考えさせられました。 言葉の定義の認識に大きなズレがある中で、質問を展開してしまうと、 余計分からなくなるばかりか、 謝った理解を、正しく理解したものと思い込んでしまうことも考えられ、 これはさすがに危険過ぎるので、 予め、基本的な言葉の使い分けについて、お聞きしておこうと思い、 このような質問をさせて頂きました。(くどくなり恐縮です。) 人間の高度な補正理解システムと、柔軟なバランス感覚に期待して、 そろそろ次の質問へと移ろうかな、、、なんて思っておりますが、 こちらの質問は、もう少し、回答募集の状態にしておこうかと思います。 貴重なアドバイスを、どうもありがとうございました。
- hogehoge78
- ベストアンサー率80% (433/539)
http://blog.summerwind.jp/archives/1062/ URIとURLの違いについて非常によくまとめてありました。 「URLはURIの部分集合」です。つまりURLはURIの一部です。 「相対パスのURLで」とか、「httpから始まるURLで(絶対URL)」とか ついでに、 http://e-words.jp/w/E38391E382B9.html パスについて。 結局URL(URI)もパスの一部であり、パスというのはつまり「アドレス」のことですよね(番地を示すわけですから) 「パスはアドレスの部分集合」で、「URIはアドレスの部分集合」です。 C言語なんかでアドレス、という言葉が出てくれば、恐らく「メモリのアドレス」を指し示すのでしょう。(aigaionが仰っていたのはこれのことですかね。) なので、文脈から判断できるか出来ないか、で言葉使いもかわってくるのではないでしょうか。 今回march4さんの質問方法ですと、「PHP関連の質問をする場所」であるから、「URLのことだな」と判断も出来ますが、「PHPはプログラミング言語だ」という判断の元で「アドレス」と出てきたら「メモリのアドレス」のことかもしれません。
補足
腰を据えて考えないと解決しない問題であるように感じてきましたので、 気合いを入れて補足をさせて頂きます。 (いつものことですが、ごめんなさい。笑) >「URLはURIの部分集合」 部分集合(⊂、⊆)という言葉を使うと効率よく説明ができそうなので、 今後、有効に使用していきたいと思います。 URI、URL、URNについて、 http://www.kanzaki.com/docs/html/htminfo-uri.html#uri ここに詳細が書かれていましたが、 読めば読むほど、よく分からなくなります。笑 URLとURNがそれぞれ、URIの部分集合であることは分かるのですが、 URLとURNの両者に属する領域があるのか、ないのか、よく分かりませんでした。 また、URLが指し示す領域が結局の所、どこまでなのか、についてもよく分からないままです。 (hogehoge78さんの紹介下さったページも、もちろん見てきましたが、どうも判然としないのです。) 以前にも、URIとはなんぞや!と立ち向かったことがあるのですが、 その時にも現在と同じような理由で、理解できませんでした。 もっとも、本質問で私が知りたいことの本質はここにはないので、 (いや、むしろ、ここに本質があるのかもしれませんが) 正直、この問題で、それほど足踏みする気はないのですが、やはり、言葉の概念や定義は 出来る限り正確に理解しておきたいなと思い、 腰を据えることに決めました。笑 で、「パス」についても調べるきっかけを与えて下さり、ありがとうございます。 調べた結果、 ルートディレクトリからの場所を示すのが絶対パス、 ある基点からの場所を示すのが相対パス、 ということが分かりました。 これについては、URI等とは違って、ハッキリと理解できたかと思います。 よって、「パス(path)」とは、 絶対、相対に関係なく、「ある場所を示す道筋」と考えられるのかなと、 考えました。 一方、アドレスとは、誰から見ても一意に解釈できる、 (ファイル等の)場所を示すもの、と理解しました。 つまり、ニュアンス的には、絶対的な意味を持つパス(絶対パスとは言っていない。逃げの戦法。笑) なのだろうと思います。 【1】http://example.com/index.php これは、アドレスと言えそうで、 【2】../index.php これは、アドレスとは言えず、相対パスになるのだと思います。 【3】/~hogehoge~/~fugafuga~/public_html/example.com/index.php さらに、こんなものもあったりするわけです。 (PHPのエラーリポートの中に登場する、「あのパス表記」です。) これについては、まさに先ほど書いたように、 ルートディレクトリからの場所を書いたものになるので、 間違いなく「絶対パス」と呼べるものなのだと思いますが、 では、【1】の、私がアドレスと認めたものは、「絶対パス」ではないのか? という疑問がわいてきます。 【1】は、 ●public_html/example.com/index.php ●http://example.com/index.php と、比較できるように並べて書いてみると、 【1】の形式の書き方では、 public_htmlの、さらに前のパス部分、つまり、 /~hogehoge~/~fugafuga~/ の部分が書かれていないことになりますから、 「絶対パス」とは言えそうにありませんね。 むしろ、ルートディレクトリではない「ある基点」からの、 パス表記ということなので、 言ってみれば、「相対パス」ということなのかもしれません。 よって、【1】のようなものは、 アドレスであり、絶対パスではなく相対パスであり、絶対URLでもある、 という説明になりますでしょうか…。 (なんだこりゃー。な感じですが。) アドレスと絶対URLは、すごく近いものを感じます…。 この辺り、かなりウサンクサイことを書いていますので、 ツッコミ大歓迎です。 みなさん、ご指導よろしくお願い致します。 もっとも、私が知りたいことは、 【1】と【3】を、PHPの、某「組み込み関数」に使って、 その時に生じる、動作の違い、についてでして、 実は、その質問をさせて頂きたくて、 そのための前処理として、本質問を書かせて頂きました。 (思っていた以上に、ややこしい展開となっており、困っていたりします。苦笑) で、このような中途半端とも思える理解のまま、 目的としている次の質問へと移って良いものかどうか、 現在、迷っている所でもあります。^^; 当初知りたかったことは、 【1】と【3】 の呼び分け、の仕方についてです。 欲を言えば、両者を比較して見た場合の、 両者それぞれの意味(や、使われ方)の違いについて、 クローズアップして頂ければと考えておりました。 以上、長くなりましたが、 さらにご指導頂けれると嬉しく思います。 よろしくお願い致します。
- aigaion
- ベストアンサー率47% (287/608)
んー >両者の呼び名を正確につかんでおきたいと考え、 絶対パスは専門用語であり正確な定義が存在しますが 絶対アドレスは専門用語でなく、造語であり意味が曖昧なため 両者の呼び名を正確につかむことは不可能です。 絶対パスのことを絶対アドレスを呼ぶような人は専門知識が乏しいです。 そのような人が書いている文献は信憑性にかけるますし、他にもっと良い文献が存在するはずです。 ですので、両者の違いを明確にする有用性はありません。 「絶対パスの中の一部について絶対アドレスという呼び方をする頭の悪い人が存在する。」 程度に記憶しておいて詳細について区別する必要性はないと思います。
お礼
>両者の呼び名を正確につかむことは不可能です。 ちょっと誤解されているようなので、補足をさせて頂きます。 私が呼び名を明確にしておきたい対象は、 http://で始まるパス(回答NO.3の方の回答によれば、絶対URI)と、 /で始まるルートディレクトリからのパス(同 相対URI)の 2つです。 これらを「両者」と書いていました。 「絶対パス」と「絶対アドレス」の定義を明確にしておきたい、 という話ではないので、ご理解頂けると嬉しいです。 (もっとも、既に、知りたいと思っていた、両者の呼び分けについては、 前述の通り、絶対URIと相対URIという呼び方を知ったことで、8割方解決しているのですが。) なお、 >絶対アドレスは専門用語でなく、造語であり意味が曖昧なため >両者の呼び名を正確につかむことは不可能です。 とのことなので、「絶対アドレス」という言葉は、 今後、私は使わないつもりです。 で、話を戻しまして、 相対URI、絶対URI という言葉を回答NO.3の方に教わりましたが、 これらは、絶対パスの中に含まれる要素なのでしょうか。
- 1
- 2
お礼
何度も、どうもありがとうございます。 (1)「./img/hogehoge.gif」 (2)「/img/hogehoge.gif」 私は確かに、ご指摘の通り、 (1)と(2)を見間違えていた、ということもありますし、 また、両者の意味の違いもよく理解できておりませんでした。 >半角スラッシュで始まる「/img/hogehoge.gif」は「(http://現在のホスト)/img/hogehoge.gif」と解釈されます。 ということは、 「(http://現在のホスト)/img/hogehoge.gif」は絶対パスですから、 「/img/hogehoge.gif」も、同様に絶対パスということになるわけですね。 なるほど、こうした理解は、今まで出来ておりませんでした。 「URI」に着目して両者を比較すると、 「(http://現在のホスト)/img/hogehoge.gif」は絶対URIであり、 「/img/hogehoge.gif」は相対URIである、と。 また、 「/img/hogehoge.gif」に着目すると、 これは、相対URIであり、かつ絶対パスであるわけですね。 ようやく考え方が分かってきたように思います! 「半角スラッシュで始まるかどうか」 これがこんなにも大事だったなんて、 全く気付けておりませんでした。 大変勉強になりました。 ありがとうございます。
補足
「お礼」の所で書いたことをちょっと訂正…。 × ----------------------------------------------- 「URI」に着目して両者を比較すると、 「(http://現在のホスト)/img/hogehoge.gif」は絶対URIであり、 ----------------------------------------------- ↓ ○ ----------------------------------------------- 「URI」に着目して両者を比較すると、 「http://現在のホスト/img/hogehoge.gif」は、 http://で始まる書式であるため、これは絶対URIであり、 ----------------------------------------------- なお、hogehoge78さんも、 このようなことを書かれていたのかもしれませんね…。 ただそのことに私が気付けていなかったというだけで…。 全く申し訳ない。^^; ではでは…。^^