SPDY/HTTP2 是不是连接响应?

     2023-03-10     171

关键词:

【中文标题】SPDY/HTTP2 是不是连接响应?【英文标题】:Does SPDY/HTTP2 concatenates responses?SPDY/HTTP2 是否连接响应? 【发布时间】:2013-10-13 22:56:32 【问题描述】:

我有一个关于 SPDY/HTTP2 的问题: 通常您将多个 CSS 和 JS 文件连接到一个文件中以保存请求并获得更好的性能。我听说 SPDY/HTTP2 将多个请求组合成一个响应。这是否意味着我不再需要预先连接 CSS 和 JS 文件,因为这是由协议处理的?

换句话说: 我可以将<script source="moduleA.js"></script><script source="moduleB.js"></script> 与SPDY/HTTP2 一起使用,就像我将<script source="allScripts.js"></script> 与HTTP1 一起使用吗?从响应性能的角度来看,这是否相同,但具有单独缓存每个文件的好处,以便我可以更改 moduleB.js 并保持 moduleA.js 缓存?

【问题讨论】:

【参考方案1】:

HTTP/2.0 尚不存在 (AFAIK) - 它仍然是一个提议的标准。但它似乎很可能会使用与 SPDY 类似的连接处理。

SPDY 不会将它们连接起来,而是在同一连接上多路复用请求 - 从网络的角度来看,效果是相同的。

是的,您不需要手动合并内容文件,是的,它们将被独立缓存。

【讨论】:

除了 hello world 之外,是否有任何可用的真实世界分析?【参考方案2】:

SPDY3 和 HTTP2 在同一物理连接上多路复用请求。 但即使是多路复用的,请求也可能会为每个资源按顺序发送,从而由于往返时间等待而导致严重的减速。

SPDY3 和 HTTP2 都有一个称为“资源推送”(也称为“SPDY 推送”,不要与“服务器推送”混淆)的功能,它允许在客户端不请求的情况下推送相关资源,@ 987654321@ - 我是一名提交者 - 据我所知,implements that feature 是唯一一个。

您可以在此视频中观看资源推送的实际操作:http://webtide.intalio.com/2012/10/spdy-push-demo-from-javaone-2012/。

使用资源推送,您可以节省额外的往返行程来获取所有不同的 JS 文件,并且仍然可以从每个文件的浏览器缓存中受益。 资源连接的全部意义在于减少获取所有所需资源所需的往返次数,而资源推送有助于解决这个问题。

【讨论】:

【参考方案3】:

HTTP/2.0 允许多路复用,其中多个请求/响应流通过同一 TCP 连接交换数据。

因为创建和启动 TCP 连接的成本很高,所以 HTTP/2.0 的多路复用通常会比 HTTP/1.1 的半并行下载快,后者的 TCP 连接数量有限(重新)被浏览器用来执行给定数量的资源请求。

但您的里程可能会有所不同。测量一下。

作为旁注,您可能希望在开发和调试时分别引用所有库,但在部署时将 JS/CSS 捆绑并缩小到一个文件中。

【讨论】:

对不起 - 但这在几个地方非常令人困惑和错误。 creating and starting TCP connections is expensive - 是的,但是 keepalive 和流水线已经存在了很长时间 - 浏览器至少在过去 12 年里一直在重用连接。 SPDY 不会改变这种行为——它消除了在单个通道上按顺序传递请求的需要。 SPDY 可以很容易地使用多个通道——同样需要注意的是会破坏 TCP 慢启动。 @symcbean 我不打算写 HTTP/1.1 和 2.0 之间的完整比较。 OP 询问:通过 HTTP/1.1 捆绑文件和不通过 HTTP/2.0 捆绑文件之间会有什么区别,我对此作出了解释,解释了多路复用可以给解释的情况带来的差异。请指出我错在哪里。

确定ajax调用是不是由于不安全的响应或连接被拒绝而失败

】确定ajax调用是不是由于不安全的响应或连接被拒绝而失败【英文标题】:Determineifajaxcallfailedduetoinsecureresponseorconnectionrefused确定ajax调用是否由于不安全的响应或连接被拒绝而失败【发布时间】:2015-09-1213:21:44【问题描述】:... 查看详情

OkHttp:与 http://example.com/ 的连接被泄露。您是不是忘记关闭响应正文?

】OkHttp:与http://example.com/的连接被泄露。您是不是忘记关闭响应正文?【英文标题】:OkHttp:Aconnectiontohttp://example.com/wasleaked.Didyouforgettoclosearesponsebody?OkHttp:与http://example.com/的连接被泄露。您是否忘记关闭响应正文?【发布时间... 查看详情

Quickbooks Web 连接器“响应不是格式良好的 XML”错误

】QuickbooksWeb连接器“响应不是格式良好的XML”错误【英文标题】:QuickbooksWebConnector"Responseisnotwell-formedXML"error【发布时间】:2021-12-2819:08:59【问题描述】:我们将QuickbooksWeb连接器(QBWC)与ConsolibyteQuickbooksPHP开发工具包一起... 查看详情

向多个设备发送推送通知:一段时间后 APNS 响应是不是定的

】向多个设备发送推送通知:一段时间后APNS响应是不是定的【英文标题】:SendPushNotificationtoMultipleDevices:APNSresponseisnegativeafterawhile向多个设备发送推送通知:一段时间后APNS响应是否定的【发布时间】:2012-10-0312:30:03【问题描述... 查看详情

SPDY 是不是需要资源捆绑以减少响应时间

】SPDY是不是需要资源捆绑以减少响应时间【英文标题】:IsresourcebundlingneededonSPDYtoreduceresponsetimesSPDY是否需要资源捆绑以减少响应时间【发布时间】:2015-07-2708:00:07【问题描述】:这里我使用术语bundling来指代将JS和CSS资源连接在... 查看详情

使用 Winsock 的 send()/recv() 时是不是需要确认响应?

】使用Winsock的send()/recv()时是不是需要确认响应?【英文标题】:Isacknowledgmentresponsenecessarywhenusingsend()/recv()ofWinsock?使用Winsock的send()/recv()时是否需要确认响应?【发布时间】:2011-09-1305:16:37【问题描述】:使用Winsock、C++,我通... 查看详情

如何检查连接是不是丢失

】如何检查连接是不是丢失【英文标题】:Howtocheckifconnectionlost如何检查连接是否丢失【发布时间】:2013-03-0713:30:01【问题描述】:如何检查我与服务器的连接是否丢失?(无论是客户端还是服务器端)我正在使用TCP连接,服务... 查看详情

WCF 响应不是映射总是返回 null

...问题描述】:我有以下WSDL文件并使用VisualStudio创建了WCF连接服务。它创建了Reference.cs文件(附在下面的WSDL文件内容之后)。当我厌倦了调用带有请求主体的服务时,它会到达服务器,但响应没有映射到WCF端,我在soapUI中尝 查看详情

如何使用 chrome 从 gRPC 服务器获取日期

...15-05-1805:03:26【问题描述】:我通过http://www.chromium.org/spdy/http2发现Chrome可以使用HTTP2.0。但是如何使用chrome从gRPC服务器获取数据?【问题讨论】:【参考方案1】:浏览器是notcurrentlysupporte 查看详情

Service Worker 是不是会不断地从服务器请求、响应?

】ServiceWorker是不是会不断地从服务器请求、响应?【英文标题】:doesserviceworkerrequest,responsefromservercontinuously?ServiceWorker是否会不断地从服务器请求、响应?【发布时间】:2016-01-2707:05:08【问题描述】:我正在使用服务器发送事... 查看详情

处理请求后 xmlhttprequest 是不是保持连接打开?

】处理请求后xmlhttprequest是不是保持连接打开?【英文标题】:Doesxmlhttprequestkeepconnectionopenafterrequesthasbeenprocessed?处理请求后xmlhttprequest是否保持连接打开?【发布时间】:2012-12-1409:43:47【问题描述】:我做了一个简单的ajax...请... 查看详情

c#winform程序运行几个小时后,程序未响应。如何排除这个问题?

...断开连接,防止数据库宕机。追问不存在数据库,不知道是不是加了windowsmediaplayer控件引起的,不用这个控件的时候不存在这样的问题 参考技术C单步调试一下看看 参考技术D检查一下内存和cpu占用情况。 第5个回答 2014-05-16... 查看详情

在 Charles 中建立 200 连接但无法看到 Https 的响应内容

】在Charles中建立200连接但无法看到Https的响应内容【英文标题】:Getting200ConnectionestablishedinCharlesbutnotabletoseetheresponsecontentforHttps【发布时间】:2020-12-2306:50:34【问题描述】:尝试设置来自不同博客的Charles证书,可以看到证书已... 查看详情

如何可靠地检测 iOS 9 上是不是连接了外部键盘?

】如何可靠地检测iOS9上是不是连接了外部键盘?【英文标题】:HowtoreliablydetectifanexternalkeyboardisconnectedoniOS9?如何可靠地检测iOS9上是否连接了外部键盘?【发布时间】:2015-11-0615:16:00【问题描述】:在iOS9之前,确定是否连接了外... 查看详情

nx许可证错误:许可证服务器关机或未响应。检查ugs_license_server设置是不是正确。[-96]这个问题怎么解决

许可证服务器关机或未响应可能是因为电脑时间出现错误,系统无法正确获取电脑服务器许可证,可以通过修改电脑时间解决。具体步骤:1、按开机键打开电脑。2、电脑开机后进入桌面,点击桌面右下方任务栏的时间日期一栏... 查看详情

浏览器判断ios是不是连接wifi

参考技术A在开发过程中,有时候可能需要判断网络是否真正可用,即真正可以访问互联网(比如连上未插网线的路由器WiFi时,网络并不是真正可用)。当在网络不可用时,可能需要提示用户或做一些其他操作。如何去检测网络... 查看详情

CSS Sprite 图像和响应式设计。它是不是同时加载全尺寸和响应尺寸?

】CSSSprite图像和响应式设计。它是不是同时加载全尺寸和响应尺寸?【英文标题】:CSSSpriteImagesandResponsiveDesign.Doesitloadboththefullsizeandresponsivesize?CSSSprite图像和响应式设计。它是否同时加载全尺寸和响应尺寸?【发布时间】:2016-1... 查看详情

EventSource 的响应具有不是“text/event-stream”的 MIME 类型(“text/plain”)

..."【发布时间】:2016-08-3010:29:45【问题描述】:。中止连接。为什么我在从javascript向ser 查看详情