1

我试图更好地理解 Http/Https 以及我发送给客户端的标头。

当已经在 Http 下获取相同的文件时,客户端是否必须在 Https 下重新获取相同的文件,还是我需要发送特殊的标头?

好吧,通过 http/https 提供文件的原因是它只是一个横幅。当用户转到安全页面时,横幅仍位于该特定模板中。一旦用户确实通过 Https 获取了文件,该文件就会按预期缓存。

沃尔特

4

3 回答 3

1

您不需要再次获取文件(绝对不应该)。

HTTPS结合了 SSL/TLS 的 HTTP。它创建了一个安全连接,有助于防止窃听和中间人攻击。

您无需通过安全通道再次获取它 - 无论是否通过加密通道获取内容都是相同的。

如果您第二次通过安全通道获取内容,那么有人可能仍然在第一次“收听”并看到了您获取的数据。如果第二次与第一次没有任何关系,则取回的行为。

如果您需要 HTTPS 的附加安全性,则根本不要通过未加密的 HTTP 获取文件,因为它不安全,因此不受保护。

不需要先做一个 HTTP 然后 HTTPS 请求,只需做一个 HTTPS。

于 2010-04-01T02:45:38.873 回答
1

https被认为是不同的“域” http,因此如果您通过 http 连接向客户端发送文件,然后切换到 https(即使您没有更改任何其他内容),浏览器仍将再次请求该文件 - 就好像文件不在缓存中。就像您请求http://www.example1.com/file.txt然后http://www.example2.com/file.txt可能是“相同”文件,但浏览器不知道所以它必须再次获取它。

但是,一旦通过 https 请求它,它将照常缓存。

于 2010-04-01T02:54:20.920 回答
0

一个网站可以通过 HTTP 和 HTTPS 提供不同版本的文件,因此浏览器必须将它们视为独立的。

所有内容都通过 URL 缓存。由于 URL 包含协议,因此文件的 HTTP 和 HTTPS 版本将有单独的缓存条目。

避免这种情况的方法是始终提供文件的 HTTPS 版本。您不能使用 HTTP 版本的安全页面,或者遇到 IE 可怕的混合内容警告:

http://blog.httpwatch.com/2009/04/23/fixing-the-ie-8-warning-do-you-want-to-view-only-the-webpage-content-that-was-delivered-安全/

于 2010-04-01T13:52:53.850 回答