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