.NET
14 декабря 2009

Убираем ненужные http-заголовки из ASP.NET

Перевод
Оригинал:
Scott Mitchell
В связи с последними инициативами Гугла, размер веб-страницы и скорость ее загрузки стали вновь актуальны. Скорость загрузки контента становится одним из критериев ранжирования результатов поиска. О GZip и Deflate сжатии написано уже много, о серверном кешировании — тоже. Поговорим о заголовках.

Итак, ваше ASP.NET-приложение, помимо прочих, шлет на клиент следующие заголовки (значения могут варьироваться):
  • Server: Microsoft-IIS/6.0
  • X-Powered-By: ASP.NET
  • X-AspNet-Version: 2.0.50727
  • (опционально) X-AspNetMvc-Version: 1.0

Убрав эти header'ы мы «облегчим» траффик всего на какие-то 100 байт для каждого запроса, но, во-первых, следует помнить, что эти 100 байт, будучи умноженными на десятки тысяч запросов к вашему серверу, сыграют ощутимую роль. Во-вторых, отсуствие header'ов усложнит жизнь злоумышленникам, которые будут лишены информации о версии вашего сервера, версии ASP.NET и о платформе вообще.

Теперь к делу.


Убираем заголовок X-AspNet-Version.


Тут все просто. Достаточно добавить в web.config строку:

<httpRuntime enableVersionHeader="false" />


Убираем заголовок X-AspNetMvc-Version


Если вы используете фреймворк ASP.NET MVC, добавьте этот код в обработчик Application_Start в файле Global.asax:

MvcHandler.DisableMvcResponseHeader = true;


Убираем заголовок X-Powered-By


Запускаем оснастку администрирования IIS и идем на вкладку «service» в свойствах веб-сайта:

image

Если у вас IIS7 — все похоже:

image

Убираем заголовок Server


Тут все сложнее. Этот заголовок добавляет сама IIS, поэтому придется вычищать его «руками», с помощью небольшого хака, опять же, в Global.asax, в обработчике Application_PreSendRequestHeaders:

//все гениальное просто
HttpContext.Current.Response.Headers.Remove("Server");

К сожалению, это сработает только с включенной настройкой Integrated Pipeline Mode — читай — «только в IIS7». Для IIS6 придется прибегнуть к помощи бесплатной утилитки от Microsoft — UrlScan
+4
7,3k 19
Комментарии 12
Похожие публикации
Популярное за сутки