给定html页面的URL是目录还是文件

时间:2014-08-24 14:31:15

标签: html url

是否可以判断HTML页面的给定URL是目录还是文件?

如果HTML网页的网址为html://some_path/foo,则可能是目录html://some_path/foo(实际HTML网页为html://some_path/foo/index.html)或html://some_path/foo可能是实际的HTML页面?或者,这是错误的,HTML页面实际上必须有一个扩展名.html?相反,如果给出了html://some_path/foo/index.html之类的URL,它可能是(异常命名的)目录还是文件,或者是目录不能具有index.html这样的名称?

1 个答案:

答案 0 :(得分:4)

就HTTP而言,没有目录或文件,只有"资源"通过网址识别。

在HTTP中,客户端向服务器发送特定URL的请求;该服务器可以执行它喜欢的任何处理以响应该请求,并使用错误代码或一串内容进行响应。返回的内容类型由服务器标识,例如Content-Type: text/html,并且客户端不需要根据URL猜测它。

服务器响应URL的最简单方法是将其映射到本地文件系统上的目录结构,并返回它在那里找到的文件的内容。当URL映射到目录时,服务器通常会配置为返回该目录中特定文件的内容,例如index.html。服务器还需要决定将每个文件标记为什么内容类型,例如根据文件名""扩展"。

如果您有这样的服务器,您可以轻松创建名为" foo.html"的目录。如果您创建了一个名为" foo"的HTML文件,您需要告诉服务器以某种方式使用HTML Content-Type来提供它,然后它才能正常工作。

但重要的是要理解这完全是特定服务器使用的约定,而不是客户端可以假设的。另一个服务器可以将所有URL直接映射到数据库查询中,根本没有底层文件系统,因此"目录"没有任何意义。