我正在尝试更多地了解 FTP 的工作原理(我是互联网世界的新手,如果在谈论协议时我的措辞风格很尴尬,我深表歉意)。据我了解,FTP 用于将文件从互联网从一台计算机传输到另一台计算机。另一方面,HTTP 仅用于“查看”/显示另一台服务器上的网页。
说,我去BBC.com并下载带有Ctrl+S
. 页面中引用的一堆相关媒体文件(例如图片)也会下载到我计算机中的单独文件夹中。这些文件是否使用 FTP 协议传输?网页内容(即 bbc 网站的 index.html 文件)是否也可以通过 FTP 下载?
您在正确的路径上,但 HTTP 和 FTP 都可以上传和下载文件。它们在可以做什么上有些重叠,但 FTP 通常有一个特定的目的来移动大文件。必须设置 FTP 服务器,并且客户端(您)必须使用 FTP 软件客户端进行连接。一种流行的免费 FTP 软件是 Filezilla。
HTTP 和 HTTPS,以及较新的版本,如 SPDY 和 HTTP/2,是浏览网站时使用的默认协议,实际上是从 Web 服务器下载文件到您的计算机。然后,您的 Web 浏览器会获取这些文件并组合成一个页面供您查看。简单地打开一个像 BBC 这样的网站,当你分解实际发生的事情(syn、syn-ack、ack、request、response、fin、fin-ack、ack 命令)时,这真是太神奇了。
必须注意的是,当您调用“保存”命令(通过 Ctrl-S/Cmd-S 键盘快捷键或其他方式)时,您的浏览器会做什么,完全取决于您的浏览器。没有标准指定当有人点击“保存”时浏览器应该做什么。
由于您已经加载了页面,浏览器已经通过 HTTP 下载了所有涉及的文件(HTML、CSS、JavaScript、网络字体、图像文件等),并且已经将它们保存在 RAM 中,如果不是也在-磁盘缓存。因此,当您调用“保存”时,它只会将这些缓存文件复制到您告诉它保存页面的任何位置。
大多数 Web 服务器只向公众公开 HTTP。大多数都不能通过FTP 访问。所以网络浏览器不认为他们可以使用 FTP 从给定的服务器检索任何文件。
请注意,您的浏览器只能保存 Web 服务器发送的内容,这通常与服务器在磁盘上的文件不同。例如,如果给定页面使用 PHP,则 Web 服务器磁盘上的文件中有一堆 PHP 代码,这些代码由服务器上的 PHP 解释器处理,并在提供给浏览器之前被删除/替换。因此,即使 URL 以 .php 结尾,您的浏览器发送的文件也会丢失服务器上原始 .php 文件包含的一堆 PHP 代码。因此,由于现代网站几乎从不只是一组容易发现的静态文件,因此您不能仅通过尝试使用 Web 浏览器或其他 HTTP 客户端尝试 HTTP 下载您可以下载的所有资源来克隆其他人的网站在服务器上找到。