点路径中的点是什么意思?

时间:2011-05-15 14:00:02

标签: url relative-path

question regarding a jQuery Ajax problem中,提问者试图在相对网址的开头使用.。我建议他把它删除,但不知道那里有什么点。

他的相对网址看起来像这样:

./delete-misc/test-ajax-code.php

我尝试查看RFC,但没有成功。我知道点在命令行(Linux或Win)中的作用,它代表当前目录。

我想知道:这是如何通过网址在互联网上运行的?它有任何最佳实践用途吗?详细解释是非常受欢迎的。

2 个答案:

答案 0 :(得分:37)

path segment .通常在相对路径引用的开头使用,并在reference resolution期间被删除,即解析对绝对URI的相对URI引用的过程:

  

路径段“.”和“..”,也称为点段,      为路径名称层次结构中的相对引用定义。他们      旨在用于相对路径引用的开头      (Section 4.2)表示层次结构中的相对位置      名字树。这类似于他们在某些操作中的作用      系统的文件目录结构,用于指示当前目录      和父目录。但是,与文件不同      在系统中,这些点段仅在URI路径中解释      层次结构,作为解决过程的一部分被删除(Section 5.2)。

Remove Dot Segments algorithms描述了如何在某个基本路径上下文中解释这些点段。

在您的情况下,./delete-misc/test-ajax-code.phpdelete-misc/test-ajax-code.php都是等效的。但是有些情况下相对路径可能被误解为绝对URI,例如在第一个路径段中有一个:,如search:foo./search:foo不同,因为前者是绝对URI,而后者是相对URI路径。

答案 1 :(得分:6)

网址前面的./等同于当前路径。因此./delete-misc/test-ajax-code.phpdelete-misc/text-ajax-code.php都是相对路径。在您发布的答案中,您要求仅删除点,因此/delete-misc/test-ajax-code.php的路径将转换为绝对路径而不是相对路径。

编辑:还有一件事 - .是当前目录,..是父目录。正如phihag评论一样,这些确实应该避免并在代码中受到保护。目录遍历可以用于恶意。