为什么在 GET 请求中 tarball 被识别为带有 .tar 扩展名

为什么在 GET 请求中 tarball 被识别为带有 .tar 扩展名

所以我对文件类型的标头请求有疑问。

不确定如何最好地表述这个问题,所以我将解释我所做的事情。

在服务器上创建一个 tarball,tar-cvf alle.tar.gz ./folderX

一切都很完美。现在我将其转移到我的 www 目录,以便与同事方便地共享。

sudo mv ./alle.tar.gz /var/www/ 

很好,没问题。

当我去http://host.tld/alle.tar.gz它工作得很好。然而当我去http://host.tld/alle.tar(不是完全扩展)它也能起作用。

如您所见,该目录绝对不包含 alle.tar 文件

目录内容

为什么会这样?有什么需要担心的吗?

答案1

之所以alle.tar能起到这样的作用,alle.tar.gz是因为网络服务器的特性,比如Apache 内容协商,正如您在页面上的示例中所看到的:

Filename        Valid hyperlink     Invalid hyperlink
foo.html.en     foo                 -
                foo.html            
foo.en.html     foo                 foo.html
foo.html.en.gz  foo                 foo.gz
                foo.html            foo.html.gz
foo.en.html.gz  foo                 foo.html
                                    foo.html.gz
                                    foo.gz
foo.gz.html.en  foo                 foo.html
                foo.gz
                foo.gz.html
foo.html.gz.en  foo                 foo.gz
                foo.html
                foo.html.gz 

相关内容