Ответьте на запросы ГОЛОВЫ HTTP с помощью ASP.NET MVC

Я хотел бы правильно поддерживать запрос ГОЛОВЫ HTTP, когда боты поражают мой сайт MVC ASP.NET с помощью ГОЛОВЫ. На это обратили мое внимание, что все запросы ГОЛОВЫ HTTP на сайт возвращали 404 с, особенно из http://downforeveryoneorjustme.com. Который является действительно раздражающим. Желание они переключились бы для ПОЛУЧЕНИЯ как все другие хорошие боты там.

Если я просто изменяюсь [AcceptVerbs(HttpVerbs.Get)] кому: [AcceptVerbs(HttpVerbs.Get | HttpVerbs.Head)] MVC будет знать для отбрасывания тела запроса?

Что Вы сделали для поддержки запросов ГОЛОВЫ HTTP? (Пример кода был бы большим!)

37
задан DavGarcia 5 July 2010 в 18:29
поделиться

1 ответ

Я создал простой метод действия в проекте 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();
    }
}
53
ответ дан 27 November 2019 в 04:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: