如何通过 HTTP 连接发送文件?

eri*_*ric 3 networking file-transfer tcp apache-2.2

我的一位老师说,当您浏览启用了文件/目录列表的 apache2 等 Web 服务器时,它会秘密打开 ftp 服务器来传输文件。

这让我很困惑,尽管在网络方面他确实比我了解得更多,因为他无法向我解释以便我理解。

如果我没有 ftp 服务器或该端口正在运行,那么该服务如何发送它?apache2 是否内置了我不知道的 ftp?如果 apache2 目录列表请求文件,那么它是通过 HTTP 还是 FTP 发送的?

mfi*_*nni 16

啊。你的老师一点都不正确。HTTP传输文件- 这就是它的工作原理。这样做不需要任何特殊的东西,即使 Apache 目录列表有点像 FTP 服务器列表。

查看您的浏览器 URL。使用 Wireshark 或 Fiddler 之类的工具来实际查看流量。您会看到,如果您通过 HTTP 浏览,并且文件链接以 HTTP 开头,那么您的下载将通过 HTTP。

如果您可以使用其中一种工具自己完成此操作,请向您的老师提出您希望在课后与他一起复习。购买一台 Windows 笔记本电脑,将 Fiddler 放在 U 盘上。一起做这个练习。如果老师被误导并向学生提供虚假信息,那么您就是在帮助他。

  • 只需向您的老师发送一个指向此页面的链接,然后躲在桌子底下即可。 (7认同)
  • +1。总是很高兴看到如此无能的老师对学生说废话。文件/目录列表只是 apache 自动生成的另一个 html 文档(因为它已在配置中被告知)。 (6认同)
  • 这意味着每个网络服务器也运行一个 FTP 服务器。很容易证明大多数网站并非如此。 (4认同)
  • 旧版浏览器(如 Navigator 和旧版 IE)能够浏览 FTP 服务器;他们的目录结构将由客户端生成的文件和文件夹的 HTML 页面表示,类似于 Apache 目录列表的样子。也许这就是让您的老师感到困惑的原因。由于浏览 FTP 服务器对大多数用户来说已成为一种不太常见的活动,我相信现在所有主要浏览器都已删除此功能以减少其攻击面。 (3认同)