获得http-304状态,但仍会传输数据

时间:2017-03-09 16:59:46

标签: http browser http-status-code-304

我想知道这个观察结果:

我第二次加载网站,firefox开发者工具中的网络模块告诉我,例如对于html文档:status = 304,type = html,size = 60kb。

type = js或css的其他一些资产也被标记为status = 304,但是大小> 0

我想知道为什么firefox似乎下载了一个未修改的资产。

对于图像,它似乎按预期工作:每当资产的类型= jpeg或png,状态= 304,而不是size = 0

对此有任何解释吗?

1 个答案:

答案 0 :(得分:1)

这是Firefox开发人员工具中的bug。 “网络”面板中的“已转移”和“尺寸”列对t响应无效。

“大小”列应显示资源的大小(如果压缩响应,则在解压缩后),无论是直接从缓存中检索,还是在304 Not Modified响应后从缓存中检索,或从服务器。在您的情况下,html / css / js请求工作正常,但jpeg / png请求工作不正确,大小不应为0.

“已传输”列应显示通过网络传输的字节数。通常它小于“大小”,因为响应将被压缩。对于304响应,“已传输”值将是一个非常小的数字,但永远不会为0(请求URL,请求标头,响应标头等)。

即使对于Firefox,它也不能始终如一地工作。在“FirefoxDeveloperEdition”中,对于304响应,jpeg / png请求的工作方式与其他html / css / js请求完全相同。但是,在常用的“Firefox”中,“大小”为0,“已传输”为“ - ”。