为什么 HTTP 服务器尽可能不发回单个文件?

Jan*_*lem 2 web-server

我想知道为什么 HTTP 服务器不将网页请求打包到单个文件中,然后浏览器会读取该文件?

据我所知,对每个网页(CSS/JSS/图像 + HTML 输出)发出的请求数量加起来会使网页加载速度变慢,并且还会增加网络服务器的负载。是否有打包所有内容(或尽可能多)并将其发送给客户端的网络服务器?

所以为了说明我的问题:

正常情况widgets.js widgets.css picture1.png picture2.png widgets.html

包装情况

小部件.pck

当然,一开始它会带来一些开销,但是通过智能缓存,我会说应该可以进行一些改进吗?

EEA*_*EAA 8

如果一个特定页面上的所有对象都由同一台服务器提供服务,我想这是可能的。但是,在大多数情况下(尤其是拥有数百万用户的大型网站),情况并非如此。许多不同的服务器涉及为每个页面的不同部分提供服务,如果您需要一个“前端”服务器来收集所有资源、打包并发送它们,那么性能将比现在浏览器的工作方式差得多负责获取所有页面资源。


Mir*_*ici 5

其实是可以的:

拥有单独资源的好处是它们被链式 Web 应用程序的各个部分单独缓存到 Web 浏览器: - 在网站的文件系统级别缓存 - 静态文件(图像、JS 等)的单独站点 - 缓存和分发网络(如 Akamai) - 在 Web 浏览器上缓存。

因此,浏览器不会因为添加了逗号而使整个页面的缓存无效,而是只会重新加载 HTML 页面。

也不要忘记大多数网站和浏览器都使用 HTTP/1.1 并启用 KeepAlive。这意味着来自同一网站的对象将在同一 TCP 连接上加载。