巧用etag实现304提高页面访问速度
来源:百度文库 编辑:神马文学网 时间:2024/05/07 09:20:45
巧用etag实现304提高页面访问速度
我们了解HTTP协议知道,304 是浏览器向服务器咨询内容是否有更新用的。朝这个方向去考虑,我打算让侧边栏实现304效果,只有服务器有更新才获取数据,没有更新让浏览器总是到本地的缓存去获取数据,以达到速度的提升。
看看我们的ASPX是如何实现304的
c# 代码- <%
- string clientEtag="";
- string serverEtag ="";
- serverEtag = "889999898880000999" //获取或生成新etag函数 返回值
- clientEtag = Request.ServerVariables("HTTP_IF_NONE_MATCH") //获取客户端etag
- if serverEtag = clientEtag
- {
- Response.StatusCode=304;
- Response.Status = "304 Not Modified" ;
- }
- else
- {
- Response.AddHeader "ETag", getEtag
- Response.Wirte("content")
- }
- %>
服务端获取到客户端的etag后,和服务器的etag进行对比。如果相等说明客户端有本地缓存,于是返回304给客户端,否则加载侧边栏的数据。当然这个判断的消耗是非常低的,我们甚至不用访问服务器,只要访问服务器里的一个缓存的etag即可