【发布时间】:2010-08-17 15:15:39
【问题描述】:
我一直在开发一个使用 HTML5 音频播放器 () 播放 mp3 的 jquery 插件。我注意到在各种浏览器中,当加载音频播放器时,会针对同一个 MP3 文件发出多个 GET 请求。
我创建了一个简单的独立 HTML 文件来测试它。
<html>
<head></head>
<body>
<audio controls src="http://localhost:5000/files/one.mp3" type="audio/mp3"></audio>
<body>
<html>
在 OS X Safari 5.0.1 中打开页面时,我从我的网络服务器中看到以下日志(3 个 GET 请求):
>> Thin web server (v1.2.7 codename No Hup)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:5000, CTRL+C to stop
127.0.0.1 - - [17/Aug/2010 11:09:32] "GET /one.mp3 HTTP/1.1" 200 4030432
0.0022
127.0.0.1 - - [17/Aug/2010 11:09:32] "GET /one.mp3 HTTP/1.1" 200 4030432
0.0012
127.0.0.1 - - [17/Aug/2010 11:09:32] "GET /one.mp3 HTTP/1.1" 200 4030432
0.0010
请注意,请求是针对“GET /one.mp3”而不是“GET /files/one.mp3”的,因为我的瘦 Web 服务器正在使用 /files 前缀。 p>
在 OS X Chrome 中打开同一个 HTML 文件时,我看到了 2 个对 /one.mp3 的 GET 请求。
在 OS X Opera 中打开同一个 HTML 文件时,我看到了 1 个对 /one.mp3 的 GET 请求。
单个文件多次 GET 请求的原因是什么?我的服务器上的带宽是有限的,我将连接限制在 75KB/s(那是 HTTP 连接,而不是用户)。我担心的是,如果 Safari 建立 3 个 HTTP 连接来下载(流式传输)单个 mp3 文件,它会减少我的服务器可以处理的并发用户数。
这是我在性能/带宽方面应该担心的事情吗?另外,我很好奇为什么某些浏览器对同一个文件发出多个请求,而其他浏览器却没有。
【问题讨论】: