gpt4 book ai didi

apache - HTTP/2 和 CNAME 如何协同工作?

转载 作者:行者123 更新时间:2023-12-04 11:35:51 24 4
gpt4 key购买 nike

我不知 Prop 体怎么问,所以我会试着用一个例子来解释。

我在 example.com 上有这些资源, HTTP/2启用的服务器:

//example.com/css/file.css
//example.com/js/file.js
//example.com/images/file.png

我想要的是通过别名域加载这些文件之一 cdn.example2.com指向域 example.com .因此,HTML 中的实际资源应如下所示:
//example.com/css/file.css
//cdn.example2.com/js/file.js -> points to //example.com/js/file.js
//example.com/images/file.png

我的问题是:第二个示例中的所有资源是否应由浏览器通过单个连接加载,因为它们将在没有别名域时加载?

感谢帮助。

最佳答案

如果别名解析为不同的 IP,则无法通过同一连接加载资源(如果我没记错的话,HTTP/2 称为“连接重用”)。从这里开始,这是 CDN 的问题。

但是为了让您高枕无忧并完全享受 CDN,连接重用是一件棘手的事情,即使您的所有域都解析为相同的 IP,您也可能没有它,就像您的问题一样。

为了将来证明,您可能希望确保您的站点具有证书扩展 configured correctly以启用连接重用。

在当前版本的 Firefox 和 Chrome 中,我没有观察到连接重用,即使在精心制作证书之后,当然也要确保两个域指向同一个 IP。

只是一些思考的食物:基于 TLS 的 HTTP/2 requires SNI ,这仅在打开连接时发生。因此,当您第一次连接到一个域(例如 example.com)时,服务器会获取 SNI 数据。但是如果重复使用相同的连接向 cdn.example.com 发送请求,服务器将不会获取此类数据。某些服务器或使用场景可能对这种不对称性很敏感,这可能与浏览器实现(或不实现)连接重用的方式有关。但这些只是你的猜测,真的......

关于apache - HTTP/2 和 CNAME 如何协同工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34140602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com