絶対パスとフルパスの違いがイマイチわかりません。
絶対パスというのはいわゆるURLのことで、URLというのはフルパスの省略されたもの、ということでいいのでしょうか。
普通にパソコンのブラウザからフルパスを使ってアクセスすると、サーバーにある関係ない情報まで見ることが出来てしまうので、指定した目的以外のフォルダをApachにより省略していわゆる普通のURLにするということですか?
また、指定したフォルダを省略するためのApachとはどのようなものでしょうか。
http://www.chama.ne.jp/download/web/path.htm
No.2ベストアンサー
- 回答日時:
その説明、誤解を産むといいますか、一般の意味を拡張しているといいますか、あまり正確ではありません。
パスというのは、AからBまでの道順でのことです。
コンピュータでは、単にパスと言った場合、あるファイル/ディレクトリから、他のファイル/ディレクトリまでの道順(ディレクトリの移動順)を示した「ファイルパス」「ディレクトリパス」のことを指すことが多いです。
ファイル/ディレクトリは、それ以上戻れない「一番上」が唯一存在して、そこから枝分かれして階層状になっています。このような構造を「木」といって、その「唯一の一番上」をルート(根)といいます。
(厳密な木/根の定義は省略します。 さらに厳密に言えば、ディレクトリ構成は木ではありませんが、木として続けます)
Windowsで言えば、マイコンピュータという根があり、そこから C:\,D:\..と枝分れして、C:\は更にProgram Files, Windowsと枝分かれ....となっています。
このファイルパスの表現として、
現在位置を基点にした「相対パス」
ルートを基点とした「絶対パス」、あるいは(省略しているように見える相対パスに対して全部書いているように見えるので)「フルパス」
があります。
その文章のややこしいところは、ルートの異なる2つの木を、あたかも一つの木のように説明しようとしていることです。
その文章で「絶対パス」として紹介しているのは、「Windowsのファイルシステムの木」での「絶対パス」のことです。
その文章で「フルパス」として紹介しているのは、「httpサーバー上でのURLの木」での「絶対パス」のことです。
httpサーバーというのは、httpリクエストに応じてデータを返すプログラムです。
ブラウザが、http:~でデータをやりとりする相手はhttpサーバーであって、直接ファイルにアクセスするわけではありません。
一般的なhttpサーバーでは、標準の動作として、コンピュータの適当なディレクトリをhttpサーバーにとってのルートとして、その下にファイル構成をそのままURLの構成にしています。
ちょうど、ファイルシステムの木にhttpサーバーのヤドリギがあるようなものです。
そのURLを使ったリクエストがあったら、対応するファイルの内容をそのまま返信します。
(「省略して云々」というのは初心者向けの説明(のつもり)なのでしょうが、正確ではありません。そのために混乱が生じているのでしょう)
このとき、URLの相対パスは、ファイルのそれと一致します。
URLの絶対パスは、「ヤドリギの根」からのパスになります。ファイルシステムの根からではありません。よって、ファイルシステムの絶対パスとは違うものになります。
htmlでのhref=~や、ブラウザ等でURLを指定する場合、httpサーバーが管理するのはhttpの木なので、ファイルシステム用の絶対パスではなく、URL用の絶対パス(ヤドリギでのパス)で書く必要があります。
... ということなのです。
ちなみに、まともなhttpサーバーだったら、例にあるような「ファイルシステムの絶対パス」を書いたところで、「そのURLを見たら『サーバーのファイルシステム上に、そのパスのファイル/ディレクトリが存在する(可能性がある)』という情報が漏れる」以外の被害はまずありません。
これでファイルシステムにアクセスできるようなサーバーなら「重大な脆弱性あり」として公表されていることでしょう。
「Apache」は httpサーバーの一種で、大きなシェアを占めています。
非常に分かりやすい説明ありがとうございます!
私たちが普段目にするURLはヤドリギからのパスだったのですね。
すっきりしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- その他(プログラミング・Web制作) 図に示す階層構造で,現在のディレクトリ(カレントディレクトリという)が*印のディレクトリであるとき, 2 2022/11/16 10:55
- その他(コンピューター・テクノロジー) <a href="file:///フォルダ名/ファイル名">リンクテキスト</a>について 1 2023/04/06 22:40
- その他(IT・Webサービス) 301リダイレクトの使い方について 7 2022/04/05 17:50
- Windows 10 WIN10(MAC-bootcamp)で 起動時のパスWが どうにもならない 2 2023/06/30 11:40
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
- Excel(エクセル) Power Query で取り込むデータのパスを相対パスに出来ませんか? 3 2022/04/05 18:31
- Windows 10 コマンドプロンプトの使い方 1 2022/10/13 14:43
- その他(交通機関・地図) JR東日本の週末パスってお得ですか? 3 2023/06/02 15:18
- HTML・CSS Dreamweaver のテンプレートでの相対パスの設定について 2 2023/06/13 17:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フルパスから最後のディレクト...
-
GetPrivateProfileStringでini...
-
FTPでputすると空ファイルが出...
-
どんなプログラムを書いても指...
-
ExcelVBAでカレントディレクト...
-
ファイルやディレクトリの存在...
-
「UNCパスはサポートされません...
-
フォルダの物が増えたら、自動...
-
C言語からC++の関数をコールす...
-
複数のファイルへの一括処理(...
-
VB2008からDLLを呼出し使いたい。
-
エクセルVBAで相対パスでファイ...
-
VB.NETでWebアプリを作成後に、...
-
[VC]VCのデバッグ実行で落ちる...
-
C言語を用いたファイルの一括削...
-
テキストファイルからApp.Path...
-
マイクラでPythonのプログラミ...
-
windows.hがincludeされない
-
fopenで別ディレクトリにファイ...
-
ExcelVBA サーバーの(共有フォ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どんなプログラムを書いても指...
-
フルパスから最後のディレクト...
-
FTPでputすると空ファイルが出...
-
windows.hがincludeされない
-
ExcelVBAでカレントディレクト...
-
「UNCパスはサポートされません...
-
マイクラでPythonのプログラミ...
-
C言語を用いたファイルの一括削...
-
fopenで別ディレクトリにファイ...
-
GetPrivateProfileStringでini...
-
ファイルやディレクトリの存在...
-
ネットワーク上のコンピュータ...
-
ExcelVBA サーバーの(共有フォ...
-
エクセルVBAで相対パスでファイ...
-
pythonでの日本語操作
-
VBAで自身のファイル名を取得す...
-
webアプリケーションでの画像フ...
-
絶対パスの絶対て英語で何でし...
-
FTPでリモートのファイル一覧取得
-
ファイルダイアログのカレント...
おすすめ情報