首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从IIS7中删除eTag标头?

如何从IIS7中删除eTag标头?
EN

Stack Overflow用户
提问于 2009-01-25 16:44:37
回答 9查看 41K关注 0票数 84

根据Yahoo's best practices for high performance web sites,我想从我的报头中删除Etags (我正在手动管理我所有的缓存,不需要Etags...当/如果我需要扩展到一个农场时,我真的希望它们消失)。我在Windows Server2008上运行IIS7。有人知道我是怎么做到的吗?

EN

回答 9

Stack Overflow用户

发布于 2009-01-25 17:25:51

在IIS7下,Etag更改编号( Etag后面的部分:)始终设置为0。

因此,对于同一文件,来自服务器的Etag不再因服务器而异,因此Yahoo的最佳实践不再真正适用。

因为您不能在IIS7上实际隐藏ETag头,所以最好不要摆弄它。到目前为止,我发现最有用的配置规则是“如果默认设置没有破坏某些东西,那就别管它”。

票数 39
EN

Stack Overflow用户

发布于 2011-11-15 04:26:56

我写了一个自定义的http模块来处理这个问题。它真的没有听起来那么糟糕。代码如下:

代码语言:javascript
复制
using System;
using System.Web;

namespace StrongNamespace.HttpModules
{
    public class CustomHeaderModule : IHttpModule
    {
        public void Init(HttpApplication application)
        {
            application.PostReleaseRequestState += new EventHandler(application_PostReleaseRequestState);

        }

        public void Dispose()
        {
        }

        void application_PostReleaseRequestState(object sender, EventArgs e)
        {
            HttpContext.Current.Response.Headers.Remove("Server");
            HttpContext.Current.Response.Headers.Remove("X-AspNet-Version");
            HttpContext.Current.Response.Headers.Remove("ETag");
        }
    }
}

以下是您需要的web.config更改:

代码语言:javascript
复制
<configuration>
    <system.webServer>
        <httpProtocol>
            <customHeaders>
                <remove name="X-Powered-By"/>
            </customHeaders>
        </httpProtocol>
        <modules>
            <add name="CustomHeaderModule" type="StrongNamespace.HttpModules.CustomHeaderModule"/>
        </modules>
    </system.webServer>
</configuration>
票数 22
EN

Stack Overflow用户

发布于 2011-11-11 12:11:19

我意识到这是一个古老的问题,但我在寻找解决方案时遇到了它。我想我找到了一个合理的答案,也就是我为this question发布的答案。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/477913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档