Я хотел бы правильно поддерживать запрос ГОЛОВЫ HTTP, когда боты поражают мой сайт MVC ASP.NET с помощью ГОЛОВЫ. На это обратили мое внимание, что все запросы ГОЛОВЫ HTTP на сайт возвращали 404 с, особенно из http://downforeveryoneorjustme.com. Который является действительно раздражающим. Желание они переключились бы для ПОЛУЧЕНИЯ как все другие хорошие боты там.
Если я просто изменяюсь [AcceptVerbs(HttpVerbs.Get)]
кому: [AcceptVerbs(HttpVerbs.Get | HttpVerbs.Head)]
MVC будет знать для отбрасывания тела запроса?
Что Вы сделали для поддержки запросов ГОЛОВЫ HTTP? (Пример кода был бы большим!)
Я создал простой метод действия в проекте ASP.Net MVC 2:
public class HomeController : Controller
{
public ActionResult TestMe()
{
return View();
}
}
Затем я запустил Fiddler и создал запрос HTTP GET , чтобы попасть по этому URL:
http://localhost.:51149/Home/TestMe
Было возвращено ожидаемое полное содержимое страницы.
Затем я изменил запрос на использование HTTP HEAD вместо HTTP GET . Я получил только ожидаемую информацию о голове и никакой информации о теле в необработанном выводе.
HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Wed, 07 Jul 2010 16:58:55 GMT
X-AspNet-Version: 4.0.30319
X-AspNetMvc-Version: 2.0
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 1120
Connection: Close
Я предполагаю, что вы включаете ограничение для метода действия, чтобы он отвечал только на команды HTTP GET . Если вы сделаете что-то подобное, это будет работать как для GET , так и для HEAD , или вы можете полностью опустить ограничение, если оно не предоставляет значения.
public class HomeController : Controller
{
[AcceptVerbs(new[] {"GET", "HEAD"})]
public ActionResult TestMe()
{
return View();
}
}