【问题标题】:If HTTP is Hyper Text Transfer Protocol, how can we upload documents and images? [closed]如果 HTTP 是超文本传输​​协议,我们如何上传文档和图像? [关闭]
【发布时间】:2013-03-03 12:41:42
【问题描述】:

据我了解,HTTP 代表超文本传输​​协议,您可以在其中以文本格式向/从网络服务器传输/接收数据。如果是这种情况,我们如何能够将文档/图像提交或上传到网络服务器?

【问题讨论】:

  • 文档和图片都是字节,HTTP允许发送和接收字节。
  • 每个数据当然是字节还是不是?
  • 是的。这就是您可以传输任何文件的方式。一切都由字节组成,每个协议(包括 HTTP)本质上都是一种复杂的方式来传输、接收和解释字节。
  • 这个问题只是基于一个误解:过于认真地阅读协议名称。这只是一个名字; HTTP 绝不限于文本,更不限于超文本。

标签: html http tcp computer-science


【解决方案1】:

HTTP 如您所说,表示超文本传输​​协议。 HTTP 在客户端服务计算机中用作请求-响应协议。这意味着当您使用计算机上的网络浏览器(客户端 - 例如 Firefox 或 Chrome)进行导航时,您正在从该网站请求信息。

回答您的问题:一切都以bytes 传输。一组单词由一串字节组成,一个word文档是一串字节,而一张图片,你猜对了,是一串字节。 HTTP 是浏览器与服务器通信的方式,用户可以使用特定的命令将他们的数据(他们的字节串)提交给服务器。

从历史上看,一个字节是bits 的数量,用于在计算机中对单个文本字符进行编码。 非常简单来说,所有数据都是由字节组成的,HTTP 是您可以将这些字节从 A 传输到 B 的一种方式。其他方式包括 FTPPOP3、@987654330 @ 和TCP/IP

非常简单地说,HTTP 通过向服务器发送和从服务器接收命令来工作。客户端和服务器之间请求-响应的两种常用方法是GETPOST。 GET 请求从指定的资源请求数据(以字节为单位),而 POST 将要处理的数据提交到指定的资源(也以字节为单位)。然后,您的计算机会将这些字节转换为可理解的格式 - 例如:

  1. 您导航到网站上的图像(下载)。浏览器识别出它是一个图像(通过多种方式,但现在,我们会说图像是一个.png 文件)。您的浏览器识别出它有要下载的图像,并在图像标签之间转换这些字节以将其呈现为图像。然后您会看到您的图像加载到屏幕上(太棒了!)。

  2. 您将 Word 文档上传到网站。 HTTP 向服务器发送附有文档的 POST 请求,并将文档作为字节字符串发送。然后,服务器会将其放在您或它指定的位置,并且您已将 Word 文档(一长串字节)上传到服务器。

所以,长话短说,所有内容都转换为bytes。位于您计算机上的文档和从网站下载的图像都包含不同的字节数和组合。

我真的没有任何计算机科学学位,并且尝试过解释这一点。但是,您可以从以下链接中找到更多信息:

HTTP methods - GET vs POST

Byte - information storage unit

List of network protocols

【讨论】:

  • "HTTP 是将这些字节从 A 传输到 B 的一种方式。其他方式包括 FTP、POP3、UDP 和 TCP/IP。"虽然 FTP 和 POP3 是应用层协议,但 UDP 和 TCP/IP 不是。苹果被比作橙色。 HTTP 建立在 TCP/IP 之上。
【解决方案2】:

HTTP 允许您使用Content-Type 标头指定要传输的数据类型。内容不一定是文本,可以是任意字节流。

HTTP/1.1 200 OK
Server: carrier pigeon
Content-Type: image/jpeg
Date: today

...contents...

HTTP 头、请求消息和响应消息都是纯文本,但内容不一定是文本。

HTTP 的原始版本不支持标头,因此没有可靠的方法来区分文本和图像。当 HTTP 1.0 到来时,H​​TTP 不再只是用于传输超文本,但名称已经卡住了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-23
    • 2016-09-30
    • 2011-09-29
    • 2010-11-18
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多