Respond to HTTP HEAD requests using ASP.NET MVC

后端 未结 2 1198
花落未央
花落未央 2020-12-17 08:12

I\'d like to correctly support the HTTP HEAD request when bots hit my ASP.NET MVC site using HEAD. It was brought to my attention that all HTTP HEAD requests to the site wer

相关标签:
2条回答
  • 2020-12-17 09:05

    I created a simple action method in an ASP.Net MVC 2 project:

    public class HomeController : Controller
    {
        public ActionResult TestMe()
        {
            return View();
        }
    }
    

    Then I launched Fiddler and built up an HTTP GET request to hit this URL:

    http://localhost.:51149/Home/TestMe

    The expected full page content was returned.

    Then, I changed the request to use an HTTP HEAD instead of an HTTP GET. I received just the expected head info and no body info in the raw output.

    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
    

    My guess is that you are including a constraint on the action method such that it will only respond to HTTP GET verbs. If you do something like this, it will work for both GET and HEAD, or you can omit the constraint entirely if it provides no value.

    public class HomeController : Controller
    {
        [AcceptVerbs(new[] {"GET", "HEAD"})]
        public ActionResult TestMe()
        {
            return View();
        }
    }
    
    0 讨论(0)
  • 2020-12-17 09:09

    You can achieve the result by simply doing following

    [AcceptVerbs(HttpVerbs.Get | HttpVerbs.Head)]
    public ActionResult TestMe() =>View();
    
    0 讨论(0)
提交回复
热议问题