我有一个 aspx 页面,但所有内容都是手动生成的(是的,我知道我需要制作一个处理程序,我还有一个问题)
我想在客户端浏览器中缓存输出。问题是它只为一个查询缓存。
public static void ProceedCaching(string etag, string lastModify, string response, HttpResponse Response,
HttpRequest Request)
{
Response.AddHeader("ETag", "\"" + etag + "\"");
Response.AddHeader("Last-Modified", lastModify);
Response.AppendHeader("Cache-Control", "Public");
Response.AppendHeader("Expires",
DateTime.Now.AddMinutes(1).ToUniversalTime().ToString("r",DateTimeFormatInfo.InvariantInfo));
string ifModified = Request.Headers["If-Modified-Since"];
if (!string.IsNullOrEmpty(ifModified))
{
if (ifModified.Contains(";"))
ifModified = ifModified.Remove(ifModified.IndexOf(';'));
}
string incomingEtag = Request.Headers["If-None-Match"];
if (String.Compare(incomingEtag, etag) == 0 || string.Compare(ifModified, lastModify) == 0)
{
Response.StatusCode = 304;
Response.End();
}
Response.Write(response);
Response.End();
}
它变得非常混乱。正如我所说,它只缓存一次。接收到 HTTP 304 浏览器后,将发送没有缓存信息(etag,lastmodified)的干净请求。有什么想法吗?