服务器首先产生ETag
,服务器可在稍后使用它来判断页面是否已经被修改。本质上,客户端通过将该记号传回服务器要求服务器验证其(客户端)缓存。
304是HTTP状态码,服务器用来标识这个文件没修改,不返回内容,浏览器在接收到个状态码后,会使用浏览器已缓存的文件
客户端请求一个页面(A)。 服务器返回页面A,并在给A
加上一个ETag
。 客户端展现该页面,并将页面连同ETag
一起缓存。 客户再次请求页面A
,并将上次请求时服务器返回的ETag
一起传递给服务器。 服务器检查该ETag
,并判断出该页面自上次客户端请求之后还未被修改,直接返回响应304
(未修改——Not Modified
)和一个空的响应体。