非法的304 HTTP响应

本文关键字:响应 HTTP 非法 | 更新日期: 2023-09-27 18:01:53

这是一个有趣的问题,我甚至不确定从哪里开始看这个问题。我有一个用c#编写的mvc应用程序,它列出了在线广告。在主页上,它显示了最近10个与照片一起放置的广告的列表。在Chrome中看看这个页面。在第一个页面加载时,它加载得很好。现在按F5。它将继续在浏览器选项卡中显示"加载"指示器,如果向下滚动,2或3个广告图像不会显示出来。奇怪的是,它总是在页面的相同区域的图像(可能是第6,第7或第8图像)。不是头几个,也不是最后几个。

这只发生在Chrome中,只有当你按下F5。如果你点击顶部的"Equispot"标志(它会将你重定向到主页),它会正常工作。

有没有人知道是什么原因导致了这个问题,或者如何解决这个问题?

EDIT:我想我可能会有所收获。Fiddler表示未显示的图像上有500个错误。这是错误:

[Fiddler]响应头解析失败。这可能是由于在此重用的服务器套接字上先前的非法HTTP响应引起的——例如,HTTP/304响应非法包含body。

因为我所有的图像都被缓存,并且在丢失的图像之前有几个304响应,这似乎是一个可能的罪魁祸首。我不知道如何解决这个问题,因为这对我来说是一个陌生的领域。

非法的304 HTTP响应

找到问题。我有一个FileCache属性,它将不必要的字节添加到缓存图像的响应中。删除这个,问题自行解决,控制器现在返回0字节的304响应。

根据我的Chrome的网络监视器,这个问题似乎发生在访问xd_proxy.php时,在页面刷新时,似乎没有返回。

    {"pageref":"http://static.ak.fbcdn.net/connect/xd_proxy.php?version=3#cb=f2583cfee4&origin=http%3A%2F%2Fwww.equispot.com%2Ff1f91777c&relation=parent.parent&transport=postmessage&type=resize&height=20&ackData[id]=1&width=90",
"startedDateTime":"2011-07 10T15:01:26.361Z",
"time":1,"request":
{"method":"GET","url":"http://static.ak.fbcdn.net/connect/xd_proxy.php?version=3#cb=f2583cfee4&origin=http%3A%2F%2Fwww.equispot.com%2Ff1f91777c&relation=parent.parent&transport=postmessage&type=resize&height=20&ackData[id]=1&width=90",
"headers":[],
"queryString":[{"name":"version","value":"3#cb"},{"name":"origin","value":"http%3A%2F%2Fwww.equispot.com%2Ff1f91777c"},{"name":"relation","value":"parent.parent"},{"name":"transport","value":"postmessage"},{"name":"type","value":"resize"},{"name":"height","value":"20"},{"name":"ackData[id]","value":"1"},{"name":"width","value":"90"}],
"cookies":[],"headersSize":-1,"bodySize":-1},"response":{"status":0,"statusText":"","headers":[],"cookies":[],"content":{"size":2575,"mimeType":"text/html"},"redirectURL":"","headersSize":-1,"bodySize":2575},"cache":{},"timings":{"blocked":0,"dns":-1,"connect":-1,"send":-1,"wait":-1,"receive":0,"ssl":-1}}