Вопрос

Я хотел бы правильно поддерживать запрос HTTP Head, когда боты ударили моего сайта ASP.NET MVC, используя голову. Мое внимание было доведено до моего внимания, что все запросы HTTP Head на сайт возвращаются 404S, особенно от http://downfereveryyonjustme.com.. Отказ Который действительно раздражает. Хотелось бы, чтобы они перешли, чтобы получить все остальные хорошие боты там.

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

Что вы сделали, чтобы поддерживать запросы HTTP Head? (Образец кода будет отличным!)

Это было полезно?

Решение

Я создал простой метод действий в проекте 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. глаголы. Если вы сделаете что-то подобное, он будет работать для обоих ПОЛУЧИТЬ и ГОЛОВА, или вы можете исключить ограничение полностью, если оно не дает значения.

public class HomeController : Controller
{
    [AcceptVerbs(new[] {"GET", "HEAD"})]
    public ActionResult TestMe()
    {
        return View();
    }
}

Другие советы

Вы можете добиться результата, просто сделав следующую

[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Head)]
public ActionResult TestMe() =>View();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top