HTTP304错误的详细说明

未修改的客户机已经缓冲了文档并发送了一个条件请求(通常是修改了,因为报头是用来指示客户机只想更新文档而不是指定日期)。服务器告诉客户,原始缓冲文件可以继续使用。

如果客户发现一个文件的最后修改当请求一个文件,然后If-Modified-Since将包含在请求,这是最后的修改缓存文件。因此,如果请求包含If-Modified-Since,表明缓存被缓存在客户端,这是肯定的返回304或200,只要时间和当前请求的时间进行修改。对于静态文件,如CSS,图片,服务器自动进行最后的修饰改性后,如果完成缓存或更新。但对于动态页面,页面动态生成往往不包含最后修改的信息,所以浏览器、网关等不做缓存,即每个请求完成时间要求200的T。

因此,对于动态页面缓存加速,我们首先增加HTTP响应头中最后修改的定义。其次,我们返回200或304根据If-Modified-Since请求和请求的内容更新时间。虽然回到304做了一个数据库查询,但是可以避免更多的数据库查询,并没有返回的网页内容,只是一个HTTP头,从而大大减少了带宽消耗,但同时提高用户的感觉。

当这些缓存是有效的,通过HttpWatch查看请求将导致这样一个结果:

第一次200

单击鼠标进行两次访问(缓存)

按F5刷新304

按Ctrl - F5刷新200

如果是这样的话,它表明缓存是真正有效的,这是我对HTTP 304的理解。