HTTP下载究竟意味着什么?

时间:2013-11-20 02:57:20

标签: http web tcp download

我经常听到有人说使用HTTP下载。它在技术上究竟意味着什么?

HTTP代表超级文字传输协议。因此,从字面上理解它,它意味着文本传输。我使用了一些嗅探工具来监控线路流量。传输的是所有ASCII字符。所以我想在通过HTTP传输之前,我们必须将我们想要下载的内容转换为字符。使用HTTP URL编码?或者一些二进制到文本的编码模式,比如base64?但这需要在客户端进行一些解码。

我一直认为TCP可以传输任何数据,因此我猜测HTTP下载是一个误用词。之所以出现是因为我们通过HTTP查看网页并在该页面上找到一些可下载的链接,然后我们点击它进行下载。实际上,浏览器打开一个TCP连接来下载它。关于HTTP没什么。

任何人都可以解释一下吗?

7 个答案:

答案 0 :(得分:12)

HTTP下载究竟是什么意思的完整答案?符合其RCF 2616规范,您可以在此处阅读:http://tools.ietf.org/html/rfc2616

当然,这是一份很长(但非常详细)的文件。

我不会在这里复制或总结其内容。

在你的问题正文中,你更具体:

  

因此,从字面上理解它,它意味着文本传输。

我认为“TEXT”这个词会误导你。

  

在通过HTTP

传输之前,必须将我们想要下载的内容转换为字符

false 。你没必要。

可以通过线路发送文件,例如JPEG图像,而无需任何编码。例如,见:When a web server returns a JPEG image (mime type image/jpeg), how is that encoded?

请注意,可以选择应用压缩或编码(最常见的情况是GZIP用于文本内容,如html,文本,脚本......)但这取决于客户端和服务器如何就数据的方式达成一致转移。这个“协议”分别是请求和谐振标题中的“Accept-Encoding”和“Content-Encoding”指令。

答案 1 :(得分:3)

我理解这个名称会误导您,但如果您将超文本传输​​协议读作具有超文本功能的传输协议,那么它会发生一些变化。

当开发HTTP时,已经有很多协议(例如,IP协议,这是数据在互联网上的服务器之间广泛传输的方式),但是没有允许在文档之间轻松导航的协议。

HTTP是一种允许传输信息的协议和用于嵌入在文本文档中的超文本(即链接)的协议。这些链接不一定必须指向其他文本文档,因此您基本上可以使用HTTP传输任何信息(发送方和接收方就使用mime类型的内容发送的文档类型达成一致)。

因此,即使您可以发送除文本文件之外的其他内容,该名称仍然有意义。

答案 2 :(得分:1)

  

HTTP代表超文本传输​​协议。因此,从字面上理解它,它意味着文本传输。

是的,文字转移。不一定是plain text,而是所有文字。这并不意味着您的文本必须是个人可读的,只能是计算机。

  

我使用了一些嗅探工具来监控线路流量。传输的是所有ASCII字符。

你的嗅探工具知道你是一个人,所以它不会只给你0和1。它将它获得的任何内容转换为ASCII字符,以使其对您可读。通过线路的Alle通信是二进制的。 ASCII代表就是为了你。

  

所以我想我们必须在通过HTTP

传输之前将我们想要下载的内容转换为字符

不,一点也不。再次,它是文本 - 不一定是纯文本。

  

我一直认为TCP可以传输任何数据, [...]

你说得对。 TCP确实传输所有数据,但是在完全不同的层中。要理解这一点,让我们看一下OSI model

OSI Model

当您通过网络发送任何内容时,您的数据将遍历所有不同的层。一,应用层。这里我们有HTTP和其他几个。您通过HTTP发送的所有内容都会通过图层,一直到演示文稿,一直到物理层。

所以当你说TCP传输数据时,你就是对的(HTTP 可以在其他传输协议上工作,比如UDP,但这很少见),但TCP会传输你的所有数据是否从Web服务器下载文件,在计算机之间复制本地网络上的共享文件夹或发送电子邮件。

答案 3 :(得分:0)

HTTP可以很好地传输“二进制”数据。没有必要转换任何东西。

答案 4 :(得分:0)

HTTP是用于传输数据的协议。在您的情况下,您正在下载任何文件。

答案 5 :(得分:0)

您可以这样做(打开其他类型的连接),也可以将数据作为原始文本发送。您将发送的内容就是您在文本编辑器中打开文件时所看到的内容。您的浏览器只是决定将文件保存在“下载”文件夹中(或者您希望的话),因为它看到文件类型不支持(.rar,.zip)。

答案 6 :(得分:0)

如果查看OSI model,HTTP是一个存在于应用程序层中的协议。因此,当您听到有人使用" HTTP来传输数据时#34;它们指的是应用层协议。例如,替代方案是FTP或NFS。

当使用HTTP时,浏览器确实会打开TCP连接。 TCP存在于传输层中,并在IP之上提供可靠的连接。

HTTP协议提供可用于检索和发送数据的不同动词,GET和POST是最常见的动词。查找REST