标签:
片子网网站优化-ETAG篇_网站开发公司
DWORD DoSendResponse( HTTP_FILTER_CONTEXT * pfc, HTTP_FILTER_SEND_RESPONSE * pResponse ) BOOL fRes = TRUE; DWORD dwError; DWORD DoSendResponse( HTTP_FILTER_CONTEXT * pfc, HTTP_FILTER_SEND_RESPONSE * pResponse ); return DoSendResponse( pfc,
《
片子网网站优化-ETAG篇_网站开发公司》文章地址:http://www.tfxk.com/wangyesheji/jianzhanjingyan/11064102012.htm
DWORD
DoSendResponse(
HTTP_FILTER_CONTEXT * pfc,
HTTP_FILTER_SEND_RESPONSE * pResponse
)
BOOL fRes = TRUE;
DWORD dwError;
DWORD
DoSendResponse(
 网站开发公司; HTTP_FILTER_CONTEXT * pfc,
HTTP_FILTER_SEND_RESPONSE * pResponse
);
return DoSendResponse(
pfc,
(HTTP_FILTER_SEND_RESPONSE *) pvData
);
default :
break;
return SF_STATUS_REQ_NEXT_NOTIFICATION;
}
DWORD WINAPI __stdcall HttpFilterProc(HTTP_FILTER_CONTEXT *pfc, DWORD NotificationType网站设计, VOID *pvData)
{
switch (NotificationType)
{
case SF_NOTIFY_SEND_RESPONSE :
if ( !fRes )
dwError = GetLastError();
pfc->pFilterContext = (LPVOID)(DWORD64)pResponse->HttpStatus;
return SF_STATUS_REQ_NEXT_NOTIFICATION;
}
fRes = pResponse->SetHeader(
pfc,
"ETAG:",
""
);
BOOL WINAPI __stdcall GetFilterVersion(HTTP_FILTER_VERSION *pVer)
SF_NOTIFY_SEND_RESPONSE );
pVer->dwFilterVersion = HTTP_FILTER_REVISION;
strcpy(pVer->lpszFilterDesc, "Remove ETAG Header ISAPI filter, Version 1.0");
return TRUE;
-->
以下是片子网的yslow截图
留神编译好之后的dll要给IIS_WPG账号恰当的权限, 不然IIS加载不了这个dll。
什么是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>
(责任编辑:网站建设)
片子网网站优化-ETAG篇_网站开发公司相关文章