每当页面加载时,它的所有内容(例如图像,脚本,样式)都是通过不同的HTTP请求来请求的,这是我所学到的。
但是为什么呢?当映像位于同一服务器上时,很明显,浏览器将请求其他内容。那么,服务器不能将图像与页面本身内联发送吗?
有时,某些浏览器使用NO IMAGE模式,但是可以将其包含在请求本身中。
这是否可以减少数据流量?
答案 0 :(得分:2)
因为HTTP被设计为一种检索文档(即文本页面)的方式。直到后来,它才充斥着图像,脚本和其他外部资源。
并非每个文档请求都需要所有相关资源,例如(已经有所有相关资源已被缓存的(纯文本)爬网程序或浏览器-他们只是想检索文档本身。
对于内联外部资源,是的,可以使用<script>
和<style>
元素以及内联图像数据来完成,请参见How to display Base64 images in HTML?。
使用HTTP / 2,兼容的浏览器/服务器对也可以利用服务器推送,完全按照您期望的旧版HTTP支持的方式运行。参见HTTP 2 will support server push, what does this mean?。
此外,随着技术的发展,协议中可以添加一些内容-如果该协议允许向后兼容的更改。不能以保持较旧的浏览器和服务器正常工作的方式轻松地将其入侵到HTTP / 1.1中。