参考となる URL と合わせてご回答いただけると幸いです。
プログラムを書いてるときにディレクトリのパスをつけるか、どうかで迷います。
つけなかったらディレクトリ、つけたらファイルという分け方ができるので、つけないのが正しいのかなと思っているのですが。
まわりのプログラムを見ると、どうもそうでもなさそうな感じです。
下記の記事も読んだのですが、じゃあ Apache が絡まない場合も、そうだという認識でよいのだろうかと言う疑問もあり、質問いたしました。
[Apache]ディレクトリにはスラッシュを付けるmod_dirの挙動
http://bit.ly/1oAIEq6
その Apache での挙動に関して、RFC 上にも記述があります。
RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax
上記 URL は、RFC 3986 の「6.2.4. Protocol-Based Normalization」ですが、RFC 3986 はあくまで、URI の表記方法等に関して書いているものであって、パス部で「ディレクトリの時は '/' で終わるべき」といった話は、そもそも RFC の範囲外(「ディレクトリの時は~」というのは、あくまで、HTTP や FTP などのプロトコルに依存する話で、URI 一般の話ではない)で、「3.3 Path」を読んでも、特にそのような決まりは書かれていません。
ですが、上記 URL で、プロトコルによっては、ノーマライゼーションがあるよ、という話で、まさに、「/」で終わらない物を、「/」を付けてリダイレクトする話が書かれています。
この文中に、こんな事が書かれています。
in this case, use of redirection by HTTP origin servers to avoid problems with relative references
「相対的な参照の問題を避けるために」と書かれています。
で、たぶん、こういう事だと思います。
例えば、「http://example.com/abc/」にアクセスして得られた HTML の中に、「../xyz/q.jpg」という指定があったとします。「ディレクトリは '/' で終わる」事が保証されていれば、
となります。しかし、'/' で終わってないと、Web サーバ側の処理としては、一度 http://example.com/abc がディレクトリか否かを確認した上で、相対パスを返す必要があります。
Web サーバの処理としては、基準の URL に対する確認処理が一手間増えるだけで、大きな問題ではないですが、パフォーマンス的には若干、'/' で終わっている事を確認する方が有利です。
あと、JavaScript など、クライアント側で相対パスから絶対パスを変換しようとすると、http://example.com/abc が、
のどちらか判断できないので、「../xyz/q.jpg」の絶対パスを決める事ができません。もし、前者であれば、http://example.com/ を基準に遡ろうとするので、「そんな絶対パスは無い」という事になります。極論すれば「http://example.com/abc.html」という名前のディレクトリも作る事は不可能ではありません(ただ、デフォルトの Apache の設定だと、実際にそういう挙動になるか、ちょっと微妙な気がしますが)。
といった事を考えると、
という事になると思います。