为什么有些网页URL没有后缀?

为什么有些网页URL没有后缀?

例如我现在所在的网页是:

https://superuser.com/questions/ask

不是:

https://superuser.com/questions/ask.html

https://superuser.com/questions/ask.php

我注意到各种网站都存在这种情况。开发人员是不是懒得给文件添加后缀?

答案1

重要的是要记住,URL 是一种指定资源的方式。此资源可以是任何类型。在较简单的网站中,资源请求位于服务器上给定文件夹中的文件。但 URL 不再是直接的“给我这个文件”,而是由 Web 引擎解析,这种情况变得越来越常见。

在这些更先进的网站中(或者至少更多地由定制软件驱动),URL 更多的是软件的指令而不是特定文件的说明符,因此没有理由包含扩展名(这只是操作系统方便地分辨某个文件是什么类型的一种方式)。

您不是在像超级用户那样的网站上请求文件;您是在针对 API 进行查询(可以这么说)。因此它不需要文件扩展名。

答案2

StackExchange 是一个 ASP.NET MVC 应用程序。MVC 表示模型、视图和控制器。URLhttps://superuser.com/questions/ask就是说转到“问题”控制器并找到“询问”方法,然后该方法将返回并将视图呈现给用户。因此,在某种程度上,您实际上并没有导航到页面,而是导航到位于 Web 服务器上的编程方法。

其次,其他网站可能有类似这样的 URLhttps://superuser.com/questions/ask这实际上是在后台重写 URL,因此http://superuser.com?q=123&a=789,你将获得漂亮的 URLhttps://superuser.com/questions/ask。这种类型的后台工作可以在 WordPress 等应用程序中找到。

希望这有助于为您解释这一点。

答案3

这些“文件”通常实际上是目录。大多数服务器允许开发人员指定默认索引文件(通常是 index.html),这样就可以输入目录的 URL,而无需输入单个文件名。例如,Apache 允许您使用DirectoryIndex.htaccess 文件中的指令来配置它:

DirectoryIndex index.html

然后,对包含 index.html 的目录的请求将与索引文件一起提供。

相关内容