为什么查看源代码会发起新的HTTP请求?

4
我注意到无论是Firefox还是Chrome,在您已经加载的网页上“查看源代码”时都会发出一个新的HTTP请求。当页面本身加载缓慢或根本无法加载时,这尤其令人烦恼。为什么会这样呢?它们难道不应该已经缓存了最初接收到的页面的现有源吗?这是基于Cache-Control标头吗?
这个问题一直在我的脑海中萦绕(通常在查看缓慢的Web应用程序背后的内容时会出现)。
2个回答

4
在Chrome浏览器中,根据这个链接,它确实基于Cache-Control头。在HTML源码没有缓存的情况下,view-source从http缓存中获取HTML源码并进行格式化输出,如果页面不在http缓存中,则会“强制”发起新的请求。对我来说,这很有道理。显然,由于HTML可以被动态地操纵,你不想使用当前呈现的内容作为事实来源。如果无法使用此方法,则http缓存将是下一个可能的来源。如果缓存中没有源代码,则似乎只能通过重新发起GET请求来获取源代码。然而,这引入了另一个有趣的问题在这里提出
再次请求URL并没有意义,因为无法保证第二个请求接收到的源码与第一个请求接收到的源码匹配。我想这是一个有意识的权衡取舍,以确保view-source请求总是以某种形式得到满足。

0
你需要在实时网页上执行“检查元素”。Show-code 重新加载页面以显示源代码,而不进行修改。

1
这绝不是答案。 - softvar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接