建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

当前位置: 建站学 > 建站指南 > 建站经验 >

电影网网站优化-ETAG篇

时间:2009-04-15 23:13来源: 作者: 点击:
电影网网站优化-ETAG篇,在HTTP1.1中有介绍,主要的作用就是在(css file, image, javascript file)文件后面添加一个唯一的参数(相当于查询参数字符串),Etag有服务器端生成,并且随着文件的改变而改变,这样浏览器端就会只重新请求获取Etag发生变化的文件,减少浏览器

什么是Etag?
在HTTP1.1中有介绍,主要的作用就是在(css file, image, javascript file)文件后面添加一个唯一的参数(相当于查询参数字符串),Etag有服务器端生成,并且随着文件的改变而改变,这样浏览器端就会只重新请求获取Etag发生变化的文件,减少浏览器端数据的流量,如果Etag没有变化,浏览器就会直接读取本地缓存,以加快浏览器的反应速度,重要的是减轻服务器端的压力,所以服务器端Etag的实现就比较重要了。
对于Apache和Lighttpd中怎样配置Etag,网上的文章很多,但对于IIS就没那么走运了, 只能写个ISAPI Filter来解决。
对于单台WEB服务器而言,就没有必要设置了,但对于使用了负载均衡机制,每台WEB服务器都会返回各自的Etag,实在比较讨厌。没有办法,最好的办法是去掉Etag了。
主要的代码如下:
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <httpfilt.h>

DWORD
DoSendResponse(
    HTTP_FILTER_CONTEXT *           pfc,
    HTTP_FILTER_SEND_RESPONSE *     pResponse
    );

 

BOOL WINAPI __stdcall GetFilterVersion(HTTP_FILTER_VERSION *pVer)
{
 pVer->dwFlags = ( SF_NOTIFY_ORDER_LOW | SF_NOTIFY_SEND_RESPONSE );
 pVer->dwFilterVersion = HTTP_FILTER_REVISION;
 strcpy(pVer->lpszFilterDesc, "Remove ETAG Header ISAPI filter, Version 1.0");
 return TRUE;
}

 

DWORD WINAPI __stdcall HttpFilterProc(HTTP_FILTER_CONTEXT *pfc, DWORD NotificationType, VOID *pvData)
{
 switch (NotificationType)
 {
  case SF_NOTIFY_SEND_RESPONSE :

   return DoSendResponse(
    pfc,
    (HTTP_FILTER_SEND_RESPONSE *) pvData
    );
  default :
   break;   
 }
 return SF_STATUS_REQ_NEXT_NOTIFICATION;
}

 

DWORD
DoSendResponse(
    HTTP_FILTER_CONTEXT *           pfc,
    HTTP_FILTER_SEND_RESPONSE *     pResponse
    )
{
    BOOL    fRes = TRUE;
    DWORD   dwError;

    fRes = pResponse->SetHeader(
            pfc,
            "ETAG:",
            ""
            );

    if ( !fRes )
    {
        dwError = GetLastError();
        pfc->pFilterContext = (LPVOID)(DWORD64)pResponse->HttpStatus;
    }
  return SF_STATUS_REQ_NEXT_NOTIFICATION;
}

 注意编译好之后的dll要给IIS_WPG账号适当的权限, 不然IIS加载不了这个dll。

 

 

 

以下是电影网的yslow截图

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容