删除 Windows Azure 网站上的标准服务器头

编辑人员注释: 本文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写。

请求和响应中包含的 HTTP 头是Web 服务器和浏览器之间的 HTTP 通信过程的一部分。例如,以下是一个典型网站上某个 Web 请求的典型响应中记录的头:

HTTP 头是客户端和服务器之间的通信过程中的一个关键部分。它们允许服务器发送与请求相关的信息,而不是内容本身的一部分。例如,Content-Length 头可告知浏览器要接收的内容的长度,而 Cache-Control 头告知浏览器该内容能否缓存响应。

我们提供了两个特别有趣的头,它们可告知客户端提供请求及其属性的 Web 服务器的类型。尽管所有 Web 服务器都会发出这种类型的头,但是许多用户希望服务器不发送此信息,因为他们希望在一定程度上保持匿名。客户要求我们在 Azure 网站上禁用这些头,因此我们在 Windows Azure 网站的最新发行版中实现了这一点。

如何禁用这些头?

通过 IIS 中的请求筛选模块可轻松删除这些头。要删除某个头,您需要站点上存储的 web.config 文件,其中包含以下内容:

上述操作将删除 Server 头。X-Powered-ByX-AspNet-Version 头是许多用户希望删除的另外两个头。要删除这两个头,web.config 需要包含以下部分。对于 X-Powered-By,以下内容位于 <system.webserver> 集内:

而对于 X-AspNet-Version,以下内容应位于 <system.web> 内:

因此,如果要删除所有内容,Web.config 将如下所示:

当然,如果站点中已经有一个现有的 web.config 文件,则需要对其进行调整,使其包含上述元素中的一个或两个。

本文翻译自:

https://blogs.msdn.com/b/windowsazure/archive/2013/11/22/removing-standard-server-headers-on-windows-azure-web-sites.aspx