http - 为什么网络需要 HTTP?

标签 http architecture ftp

不,等等。我是认真的。发明 HTTP 时,FTP 已经存在。为什么 FTP 不能成为 Web 的传输协议(protocol)?

当然,它有很多缺失的功能,但大多数功能是事后添加到 HTTP 中的,也可以添加到 FTP 中,例如缓存、压缩、虚拟主机。

您甚至可以想到像 CGI 这样允许自动生成 FTP 文件(页面)的协议(protocol)。

最佳答案

是的,您可以使用 FTP 提供 HTML 文件。然而,FTP 是一种重量级的、有状态的协议(protocol),并且假定您将停留在同一台服务器上。它针对下载较大的文件进行了优化(其中设置开销在下载的大小和数量上分摊) HTTP 非常轻量级(您可以使用比 FTP 更容易的 TELNET 与 HTTP 服务器通信,尤其是在 PASSIVE FTP 之前)并且是围绕 HTML 设计——在您的导航过程中,您将访问许多不同的服务器并且一次只从每个服务器抓取几个文件的概念。

Gopher 在 HTML 之前就已经存在并且非常流行。它也是一个轻量级协议(protocol)。它只是没有 HTML 所具有的外观和易于输入。

简短的回答是,人们出于各种原因(例如博士论文)发明了各种协议(protocol)——HTTP 设法在正确的时间出现并具有正确的功能集。

顺便说一句,CGI 一开始甚至不是 HTTP 的一部分。它后来出现了——将 CGI 硬塞到 HTTP 中要比将其硬塞到 FTP 中容易得多,因为协议(protocol)简单、无状态。

哦,在 HTTP/HTML 之前没有“网络”。网络需要 HTTP,因为 HTTP 创造了网络。

关于http - 为什么网络需要 HTTP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1059790/

相关文章:

java - 在 Java 中使用 JSON 的 HTTP POST

design-patterns - 企业架构反模式

sql - 多个 SQL/NoSQL 数据库架构中的一致性/原子性(甚至 ACID)属性

java - 多线程ftp上传

ubuntu - 在 VSftpD(Ubuntu 服务器)中设置适当的用户权限

javascript - gulp.watch() 不适用于 ftp 更新

php - 在 php 中检测远程操作系统

c++ - 对维基百科的 HTTP 请求

windows - 下载很多小文件

database - 如何到 "explore"组服务器?