http - 为什么我们不让 HTTP 请求更高效呢?
问题描述
每当页面加载时,它的所有内容(如图像、脚本、样式)都是通过不同的 HTTP 请求请求的,这就是我所学到的。
但为什么会这样?当图像在同一服务器上时,很明显,浏览器会请求其他内容。那么,服务器不能发送与页面本身内联的图像吗?
有时,某些浏览器使用 NO IMAGE 模式,但这可以包含在请求本身中。
如果实施,这不能减少数据流量吗?
解决方案
因为 HTTP 被设计为一种检索文档(即文本页面)的方式。直到后来,这才丰富了图像、脚本和其他外部资源。
并非每个对文档的请求都需要所有相关资源,例如(纯文本)爬虫或已经缓存了所有相关资源的浏览器 - 他们只想检索文档本身。
至于内联外部资源,是的,可以使用<script>
和<style>
元素来完成,并使用内联图像数据,请参阅如何在 HTML 中显示 Base64 图像?.
使用 HTTP/2 兼容的浏览器/服务器对也可以利用服务器推送,完全符合您期望旧 HTTP 版本支持的功能。看到HTTP 2 将支持服务器推送,这是什么意思?.
此外,随着技术的发展,可以将事物添加到协议中 - 如果该协议对向后兼容的更改开放。这个不能轻易被入侵到 HTTP/1.1 中,以保持旧浏览器和服务器正常工作。
推荐阅读
- terraform - 如何在多个 EC2 实例中分配私有 IP?
- c# - DateTime 以错误的布局保存
- visual-studio - 如何安全地管理本地 nuget 包?
- cmake - CMake 多次调用 project()
- java - 多个类实现的接口
- reactjs - useContext 返回未定义
- javascript - JQuery 没有找到 textarea 值
- python - Python Creating an installable program using pyinstaller
- mysql - 使用 VARCHAR 字段按哈希分区
- python - 为什么我收到此 NameError:尝试将 Outlook 电子邮件附件的文件名添加到列表时?