我试图理解为什么 IIS 提供的静态图像需要大约 182 毫秒才能加载。使用 chrome 我捕获了以下时间信息。
当我通过直接在 Web 服务器上打开 chrome 请求同一图像时,我看到“等待”时间下降到 2-5 毫秒。
我正在尝试理解 Chrome 显示的时间信息。根据Google 的文档,“连接”时间包括 TCP 握手,“等待”代表“等待初始响应所花费的时间”。
我确实知道 Web 服务器提供图像所需的时间不会超过 2-5 毫秒,那么我的“等待”数字怎么会显示为 ~ 130 毫秒?即使它包括服务器和浏览器之间传输数据包的单向延迟,130 毫秒也没有意义,因为“连接”总共花费了 0.338 毫秒!这些数字加起来不对!
答案1
这其中涉及很多事情。你可能需要一些更好的侦探工具。
下载WireShark并学会使用它。它能让你更清楚地看到你的网络流量。(这并不是网络流量问题,但你需要开始消除潜在的问题。)那里有很多关于如何使用它的精彩视频链接。这里是可能与您的问题相关的一个。
对于 http 问题,也可以下载并学习使用Fiddler。
答案2
如果您从同一个域下载多张图片,Chrome 会限制每个域最多 6 个并行连接。那么,当第一个连接释放时,它将用于下载下一个图片。在您的时间/瀑布图中,您会看到由于这种涓流效应,图片一次下载一张。“后面”的图片必须等待连接打开。如果不是这种情况,请发布一个图表,显示在此特定下载之前的 2-3 个连接。谢谢。
答案3
在服务器上加载图像和远程加载图像之间的一个区别是,IIS 需要查找您的远程 IP 并对其进行逆向。其中一部分时间可能需要等待非本地 DNS 服务器进行响应。
您可以测试一下您是否可以深入访问 IIS 服务器,以便将客户端测试机器的 IP 放入 HOSTS 文件中。您还可以从服务器 ping 网络堆栈中配置的 DNS 服务器,看看它们是否相距约 100ms。