在question regarding a jQuery Ajax problem中,提问者试图在相对网址的开头使用.
。我建议他把它删除,但不知道那里有什么点。
他的相对网址看起来像这样:
./delete-misc/test-ajax-code.php
我尝试查看RFC,但没有成功。我知道点在命令行(Linux或Win)中的作用,它代表当前目录。
我想知道:这是如何通过网址在互联网上运行的?它有任何最佳实践用途吗?详细解释是非常受欢迎的。
答案 0 :(得分:37)
path segment .
通常在相对路径引用的开头使用,并在reference resolution期间被删除,即解析对绝对URI的相对URI引用的过程:
路径段“
.
”和“..
”,也称为点段, 为路径名称层次结构中的相对引用定义。他们 旨在用于相对路径引用的开头 (Section 4.2)表示层次结构中的相对位置 名字树。这类似于他们在某些操作中的作用 系统的文件目录结构,用于指示当前目录 和父目录。但是,与文件不同 在系统中,这些点段仅在URI路径中解释 层次结构,作为解决过程的一部分被删除(Section 5.2)。
有Remove Dot Segments algorithms描述了如何在某个基本路径上下文中解释这些点段。
在您的情况下,./delete-misc/test-ajax-code.php
和delete-misc/test-ajax-code.php
都是等效的。但是有些情况下相对路径可能被误解为绝对URI,例如在第一个路径段中有一个:
,如search:foo
与./search:foo
不同,因为前者是绝对URI,而后者是相对URI路径。
答案 1 :(得分:6)
网址前面的./
等同于当前路径。因此./delete-misc/test-ajax-code.php
和delete-misc/text-ajax-code.php
都是相对路径。在您发布的答案中,您要求仅删除点,因此/delete-misc/test-ajax-code.php
的路径将转换为绝对路径而不是相对路径。
编辑:还有一件事 - .
是当前目录,..
是父目录。正如phihag评论一样,这些确实应该避免并在代码中受到保护。目录遍历可以用于恶意。