HTTP使用UDP吗?

HTTP使用UDP吗?,http,tcp,udp,Http,Tcp,Udp,这可能是一个愚蠢的问题: HTTP是否使用过用户数据报协议 例如: 如果使用HTTP传输MP3或视频,是否在内部使用UDP进行传输 通常不会 流很少通过HTTP本身使用,HTTP也很少通过UDP运行。但是,请参见 对于您的示例(在注释中),您没有显示资源的协议。如果该协议是HTTP,那么我不会将访问称为“流”;即使它在某种意义上是因为它正在通过网络串行发送一个(可能很大的)资源。通常,资源在播放之前会保存到本地磁盘,因此网络传输不是通常所说的“流式传输” 不过,正如评论者所指出的,确实有可能

这可能是一个愚蠢的问题:

  • HTTP是否使用过用户数据报协议
例如:

如果使用HTTP传输MP3或视频,是否在内部使用UDP进行传输

通常不会

流很少通过HTTP本身使用,HTTP也很少通过UDP运行。但是,请参见

对于您的示例(在注释中),您没有显示资源的协议。如果该协议是HTTP,那么我不会将访问称为“流”;即使它在某种意义上是因为它正在通过网络串行发送一个(可能很大的)资源。通常,资源在播放之前会保存到本地磁盘,因此网络传输不是通常所说的“流式传输”


不过,正如评论者所指出的,确实有可能通过HTTP传输,有些人已经做到了。

可能只是一些琐事,但UPnP将通过UDP使用HTTP格式的消息进行设备发现。

如果您正在传输的mp3或视频不一定是通过HTTP传输的,事实上,如果是这样,我会感到惊讶。这可能是TCP上的另一个协议,但我看不出为什么不能通过UDP传输

如果您这样做,您必须考虑到您的数据是否会到达另一端是不确定的,但我可以认为您了解UDP

要回答您的问题,不,HTTP不使用UDP。 不过,就您所说的,mp3/视频流可以通过UDP传输,在我看来,不应该通过HTTP传输。

来自:

HTTP通信通常发生 通过TCP/IP连接。这个 默认端口为TCP 80,但其他端口为 可以使用端口。这是不可能的 阻止HTTP的实现 在网络上的任何其他协议之上 互联网,或在其他网络上。超文本传输协议 仅假定运输可靠; 任何提供此类服务的协议 可以使用担保;映射 HTTP/1.1请求和响应的 传输数据上的结构 有关议定书的单位是: 不在这一范围之内 规格

因此,尽管没有明确说明,UDP并没有被使用,因为它不是一种“可靠的传输”


编辑-最近,QUIC协议(更严格地说,它是一种伪传输或会话层协议)确实使用UDP来承载HTTP/2.0流量,谷歌的许多流量已经使用了该协议。它目前正朝着标准化方向发展。

答案是:

原因:参见OSI模型

解释:


HTTP是一种应用层协议,可以用使用UDP的协议封装,提供比TCP更快的可靠通信。服务器守护进程和客户端显然需要支持这个新协议。Quake 2协议证明,UDP可以通过TCP提供结构化通信系统的基础,以确保流控制(例如区块ID)。

UDP是流媒体的最佳协议,因为它不会要求丢失TCP之类的包。如果它不产生需求,那么流会更快,并且没有任何缓冲

甚至流延迟也小于TCP。这是因为TCP(作为一种更安全的协议)要求丢失包,覆盖现有包


因此,TCP是一种过于先进的协议,无法用于流媒体传输。

尝试使用节点httpp通过UDP运行HTTP:


当然,它不一定要通过TCP传输。我在UDP之上实现了HTTP,用于卫星电视广播行业。

是的,HTTP作为一种应用协议,可以通过UDP传输协议传输。 以下是一些使用UDP和底层协议传输HTTP数据并将其流式传输给最终用户的服务:

  • XMPP的叮当原始UDP传输方法
  • 使用UDT的服务的编号---基于UDP的数据传输协议,它是UDP协议的超集
  • 封装HTTP以及上述XMPP和其他应用程序协议的传输层安全(TLS)协议的实现在其传输层中使用UDP;这种实现称为数据报传输层安全性(DTLS)
  • GNUTella中的推送通知是通过UDP传输发送的HTTP请求

本文包含关于UDP流及其可靠超集的更多详细信息,RUDP:

http over UDP被一些torrent tracker实现(以及所有主要客户端的supporteb)所使用。

可能会对该主题进行一些更改

QUIC(Quick UDP Internet Connections,发音为Quick)是谷歌开发的实验性传输层网络协议,于2013年实施。QUIC支持通过用户数据报协议(UDP)在两个端点之间建立一组多路连接,旨在提供与TLS/SSL等效的安全保护,同时减少连接和传输延迟,并在每个方向上估计带宽以避免拥塞。QUIC的主要目标是优化当前使用TCP的面向连接的web应用程序


理论上是的,可以将UDP用于http,但这可能会有问题。例如,在您的示例中,一个mp3或视频正在流式传输,这将出现排序问题,并且一些位可能会丢失,因为UDP不是面向连接的,没有重新传输机制

我认为有些答案遗漏了一个要点。UDP和TCP之间的选择不应基于数据类型(例如音频或视频)或应用程序是否在传输完成之前开始播放(“流”),而应基于数据是否是实时的。实时数据(根据定义)对延迟敏感,因此通常最好通过RTP/UDP(UDP上的实时协议)发送

拖延是不公平的